Разве SQL-запросы не будут выполняться быстрее, поскольку нет необходимости загружать 3 разных объекта из базы данных?
Поправьте меня, если я ошибаюсь, но откуда берутся идентификаторы StudentObject, CollegeObject и MajorObject, если не из базы данных? И если это какие-то справочные данные, они являются идеальными кандидатами для кэширования второго уровня (и это будет означать, что база данных вообще не попадет).
Независимо от вашего ответа, мое мнение об использовании ORM, такого как Hibernate, для типичного приложения CRUD:
- Сокращает время разработки, удаляя весь раздражающий код, необходимый для ручного CRUD.
- Предоставляет полезные функции, такие как отложенная загрузка, кэширование второго уровня, кэширование запросов.
- По моему опыту, он генерировал лучший SQL, чем средний разработчик
- В 80% случаев он будет работать нормально
- И даже если вы потратите время на настройку остальных 20%, вы все равно будете делать это быстрее, чем без ORM.
Подводя итог, все дело в том, чтобы повысить продуктивность разработок, и мой опыт с этой точки зрения положительный. В general он работает действительно хорошо, даже лучше, чем пользовательский код (благодаря отложенной загрузке и кэшу 2-го уровня).
Однако в некоторых случаях производительность будет "не такой хорошей", как в случае с пользовательским SQL. Но тюнинг возможен.
Возвращаясь к вашему вопросу, я думаю, что преимущества в некоторых случаях использования могут оказаться непомерными (хотя я все еще не уверен, что ваш пример хороший). Но есть ли у вас проблемы с производительностью?