O/R mapping is well suited for read--> modify --> write centric applications and not suited for write centric applications (i.e. batch processes with large data sets like 5000 rows or more) where data is seldom read. O/R mapping tools/frameworks allow you to model inheritance (Refer Q101 in Enterprise section), association and composition class relationships. O/R mapping tools work well in 80-90% of cases and use basic database features like stored procedures, triggers etc, when O/R mapping is not appropriate. Keep in mind that no one size fits all solution. Always validate your architectural design with a vertical slice and
test for performance. Some times you have to handcraft your SQL and a good O/R mapping (aka ORM) tool/framework should allow that. O/R mapping tools/frameworks allow your application to be:
• Less verbose (e.g. transparent persistence , Object Oriented query language , transitive persistence etc)
• More portable (i.e. vendor independence due to multi dialect support )
• More maintainable (i.e. transparent persistence, inheritance mapping stategies, automatic dirty checking etc).