Изменения

Перейти к: навигация, поиск

О Java ORM

760 байтов добавлено, 09:56, 17 февраля 2016
м
Нет описания правки
Минусы:
* Немного монструозны (перегружены функционалом).
* Возможно, не вполне идеальна логика отображения — конструирование объекта всегда связано с десериализацией , для сохранения ID связанных объектов без самих объектов применяются proxy-классы и ленивая подгрузка (нет возможности одно и то же поле, скажем, person_id, видеть и в виде ID, и в виде объекта)…
* HQL/JPQL — всё-таки недоразумение. Не могу понять смысл реализации собственного строкового языка запросов — SQL если уж во что-то заворачивать, то во что-то объектно-структурированное — хотя бы в объект типа «запрос» с полями tables, where, order by, group by и т. п., но не снова в строковой же литерал!
* Объекты запросов есть в виде Criteria, но они не очень удобны, ибо многословны.
Минусы:
* Серьёзные минусы вроде отсутствуют, разве что логика отображения та же, что в JPA
 
== Идея ==
 
* 1 часть — объект «соединение». Умеет делать запросы в синтаксически кратком стиле (возможно, Fluent API) и возвращать записи в виде чего-то типа Map<String,String> или Map<String,Object>. Кроме того, является аналогом сессии/persistence manager’а для моделей.
* 2 часть — базовый класс модели. Запись БД хранит в виде такого же объекта Map, никуда не вытаскивает. Создание модели = вызов конструктора, который только сохраняет к себе этот Map.

Навигация