I know a lot of people have been burned in production by many ORMs in the past - and those scares are what anyone suggesting an ORM today has to deal with.
SQLA is doing a very good job at that - have you seen the videos I posted here? They are talking about Hibernate, as well as the Active-Record pattern. The guy who wrote it has mentioned all of the worries you are talking about in those videos. For example: Eager-vsLazy loading is configurable - both are supported, and you can use each in you core, depending on circumstances. As I said in the previouse message (I updated it since you posted this one). it depends - the trande-offs are circumstancial - that's why you need both approaches, and the ability to concigure each object to use one or the other in different circumstances - and that's what SQLA provides. As for recursive-queries, it does not occur in eager-loading in SQLA. SQLA features what it called a "cascade", which means it "traverses" through the attribute-accesses, and only fetches what you actually asked for (well, it's not really "traversing", there are events that are triggered on each object's attribute-access...) this is for both lazy and eager loading configurations. The cascade makes sure that you only get what you explicitly asked for, no more, no less. As for "Magic", he is talking about that also. SQLA is not hiding it's internals like many other ORMs are doing - it is highly configurable, with sane-defaults, so you can go as deep as you like and re-configure things the way you like. In fact, this is not only "possible", but rather "advised" explicitly - at some areas it is even "mandatory". The explicit-support for configurability comes in the form of tools for automating manual-configuration, through meta-classes and mix-ins. -- --- You received this message because you are subscribed to the Google Groups "web2py-users" group. To unsubscribe from this group and stop receiving emails from it, send an email to web2py+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.