First of all my apologies for a late reply... Now back to our interesting discussion, {quote:m4ktub} I don't think the Search concept that João described above was completly understood. The suggestion was to consider a view in a database as a regular table. So, if your persistence framework maps objects to tables, it can map and object into a view. If you then ask the framework to provide all objects of that type (a readAll) it will provide objects representing the result of a complex query "transparently". {quote} Yes, I hadn't understand like that, thanks for pointing it out.\\ The idea itself seems good and more efficient, afterall database engines do that at it's best. But you still defend that for one or two levels and having all the domain materialized the search in memory will be faster...hmm... I'm not really sure about that, but neither am I sure about the other way around! When can we see your tests result data? ;-) {quote:jmpsi} (...) when such materialization was (probably) already made by the database engine. {quote} I'm sorry I didn't quite follow you here. The database already had made the materialization? We're talking about relational databases there's no concept of materializing an object. I must have misunderstood something about what you were saying. Could you please clarify? {quote:jmpsi} However, when done in memory, upon materializing the results, you'll have to find the most recent order by iterating manually through the orders of the costumer, materializing them all to do the comparison and find the most recent. This is a very simple example that (I hope) can demonstrate my point. {quote} That is not completely true - let me be a bit of a troll - imagine for example that you keep an ordered list of orders, using this implementation you could simply do a direct access to the first or last item of the list (depending on how you were ordering it).\\ But yes, I did understand what you were saying. Doing a readAll and iterating the resulting list in order to find which objects are matching our criteria is, may I dare to say always, a nasty implementation that won't scale properly.