What ORMs have taught me: just learn SQL (2014)
>  If you're using an RDBMS, bite the bullet and learn SQL.<p>If this person spent all that time using Hibernate and then SQLAlchemy, and all that time did <i>not</i> know SQL, then their suffering and bad experiences make complete sense.  You absolutely need to know SQL if you're going to use an ORM effectively.  Good ORMs are there to automate the repetitive tasks of composing largely boilerplate DML statements, facilitating query composition, providing abstraction for database-specific and driver-specific quirks, providing patterns to map object graphs to relational graphs, and marshaling rows between your object model and database rows - that last one is something your application needs to do whether or not you write raw SQL, so you'll end up inventing that part yourself without an ORM (I recommend doing so, on a less critical project, to learn the kinds of issues that present themselves).   None of those things should be about "hiding SQL", and you need to learn SQL first before you work with an ORM.