I won’t go into too much detail here, but learning a new syntax to have less of the expressiveness of SQL isn’t my cup of tea. Sure you can go down to SQL on them, but why not just include select statements in your HTML template if you get to that.
- They’re too heavyweight for what they do
- The syntax is always one off and invariably ugly
(see this post) - Difficult to debug
(and fills up log files fast, even on warn) - caching is better off implemented in a cache
(caching is the real reason I think people use tools like Hibernate) - Business code ends up getting written in the ORM layer
(again, might as put it in the presentation layer)
(annotations are code, you just can’t see them and don’t know how they work)