> Но я все равно не понимаю, зачем может быть нужен ORM.
Это лишний текущий слой абстракций, который в некоторых простых случаях уменьшает затраты из и так не ресурсоемкой части разработки, но добавляет кучу проблем.
Чем объемнее структуры данных (не хочется говорить "сложнее", т.к. со сложными ORM не справляются), и чем больше разнообразных операций над ними, особенно выборок, и чем более "рядовые" разработчики у вас, тем ORM выгоднее. Прикладной код становится значительно компактнее, boilerplate исчезает, масса ошибок исключается на этапе компиляции, легко добавляются и инкапсулируются общие схемы хранения сложных значений, запросы при этом часто вполне приемлемы по качеству, скорость разработки вырастает, гладко работают рефакторинги в IDE, абстракция хранения протекает несильно, надзор над SQL нужен не очень большой.