Is ORM still an anti-pattern?
I've been doing ORM on Java since Hibernate was new, and it has always sucked. One of the selling points, which is now understood to be garbage, is that you can use different databases. But no-one uses different databases. Another selling point which is "you don't need to know SQL", is also garbage. <i>Every non-trivial long-lived application will require tweaks to individual queries at the string level</i>. The proper way to build a data layer is one query at a time, as a string, with string interpolation. The closer you are to raw JDBC the better.<p>Oh yeah, another bad reason for ORM: to support the "Domain Model". Which is always, and I mean always, devoid of any logic. The so-called "anemic domain model" anti-pattern. How many man-hours have been wasted on ORM, XML, annotations, debugging generated SQL, and so on? It makes me cry.