A lot of the reasons listed in this article actually made me shift from sophisticated ORMs like Hibernate back to a query based approach. A really nice framework for this (in Java) is jOOQ which gives you the possibility to write typesafe SQL via code generation. https://www.jooq.org/
(I'm not at all affiliated with jOOQ - just a happy user)