We are considering adding ORM to an existing project. We have not worked with ORM in production before and this has the potential to be one of our biggest projects in terms of usage. For this reason, I have hesitated to suggest it, but i think it could simplify some things for us, specifically with respect to code maintenance and re-use. This is also the second phase of development, so all the query logic so far is in place without ORM, although we do have queries separated into a separate service layer. We are looking to get some arguments for and against using ORM it in production.
Are people using ORM in large production projects now? Any problems or considerations using ORM mixed with native CF query methodologies (cfquery, etc)? What are some things to consider with respect to scaling and performance (I have played around with options for lazy loading, batch loading, and secondary caching using ehcache)? What about maintenance and security? Anything else to be considered?
I would like use ORM for the bulk of our database interaction, with some HQL and native SQL in special cases (possibly written directly in to the database as views, triggers, stored procedures, etc). However, I'm also relatively new to CF, so I definitely have the most to learn on our team, especially working in production environments. I'm really looking forward to your feedback!
I use it for a relatively small project without any problems (nothing complex, just basic CRUD). The ColdBox framework, MuraCMS, and Slatwall use it so you might want to look at their support areas. If you are new to ORM in CF, I would recommend the book by John Wish http://www.coldfusionormbook.com/.