The Vietnam of Computer Science 20 Years On
It has been almost 20 years since this post but the truth of it still holds. Object-relational mapping (ORM) has many solutions, none of which - ideal.
Indeed, just like the infamous conflict - this war is unwinnable, and it is so by the way the two most popular data models in computer science interact.
Most software development happens in object-oriented languages and still the important stuff in most systems is kept in relational databases (not just because it is hard to migrate a database solution - the most popular topic for enterprises with Oracle Database for the past 25 years has been migrating away from Oracle 🙂, but because implementations of alternatives to the relational model props to Ted Codd, colloquially known as NoSQL - because of a title of a lecture many years ago - are simply not mature enough to handle and provide control over data for a number of applications mostly, but not exclusively - because the lack of offering of full-fledged ACID model).
So as long as we use object-oriented programming, together with relational databases we will have a suite of problems arising from it (impedance mismatch, performance overhead, loss of fine-grained control, complexity with advanced queries, schema evolution and migrations, over-abstraction, learning curve and misuse, vendor lock-in, etc.) on our hands.
What we can do to alleviate the suite of problems (not resolve them, since they will always be there so long we use OOP and relational databases) is to get to know the concepts and understand them deeply - OOP and the relational model, as well as the ORM concepts - once you understand them it will be trivial to use any tools that implement these concepts and thus make your career journey easier and the outcome of your work - higher quality.