Use the right tool for the right job, yes. But this isn't "choose one tool over another" for all your application. You can use both in same application, just for different jobs. ORM is a must for CRUD. It's much better for maintainability and extensibility.
Also, if you guys don't use DDD (Domain-Driven Design) to project your entity classes, you also don't know how to use OOP right and obtain the benefits from it. And just with an ORM you can use full DDD, because your domain entities is real objects. Yeah, it's just that great! If you have a system with lots of business rules, it makes your system much more maintanable (to do the bug killing) and extendable (do the evolution baby).
For batch processing, you can just use stateless (database) sessions (a.k.a entity manager / unit of work pattern) which don't maintain entities in memory or alternatively just use stateful and tune up batch size. If this don't attend you (a rare case for major systems, but a must for financial and billing systems), you can also use SQL directly from the same datasource or stored procedures. The batch isn't your system for most of cases.
Cheers,
--
Wanderson Santos
I've used a variety of ORM's and built ORM over the last 8 years. Most JPA compliant ORM aren't well suited to large batch processes that perform ETL. To make an ORM work well for ETL type processes requires doing things differently. For example, look at IBM's Metadata server, which employs model driven design techniques to go from UML to Java/tables. To get batch processes to work well took many years to get right.
Even if a developer uses a JPA compliant ORM in "stateless" mode, the overhead is significant and often times unacceptable. In my own experience, ORM frameworks are useful, but you have to be aware of the limitations of each vendor. It can save time, but that is really a product of the developers and how they use it.