Изменения

О Java ORM

1530 байтов добавлено, 08:12, 19 февраля 2016
Нет описания правки
== [http://www.querydsl.com/ Querydsl] ==
* Для получения красивого Типобезопасное (импортирующее схему в Java классы) Fluent API запросов вместо HQL/JPQLпостроения SQL-литералов можно подключитьзапросов. Плюсы:* API построения запросов довольно удобное.* Универсальный, работает как с JPA, так и с голым SQL. Минусы:* Хоть и может возвращать DTO’шки (кроме обычного Tuple), они не является ActiveRecord’ами, то есть никакой логики их обновления или подгрузки связей нет. То есть, скорее должен рассматриваться как дополнение к мапперу.
== [http://www.jooq.org/ jOOQ] ==
 
Плюсы:
* Легковесный Fluent API + Active Record фреймворк.
* Похож на Querydsl, тоже использует кодогенерацию и типобезопасные запросы через Fluent API, однако в дополнение к этому генерирует классы моделей (Active Record) и поддерживает различные [http://www.jooq.org/doc/3.7/manual/sql-execution/fetching/ способы] получения результатов запросов (Record или смапленные).
Минусы:
* Трудно/криво расширяются сгенерированные классы записей (трудно добавлять в них доменную логику).
* Для работы с Oracle нужна платная лицензия — не очень критично, так как для открытых СУБД (MySQL, PostgreSQL и так далее) доступна версия под лицензией Apache 2.0, разрешающей коммерческое использование.
 
Краткий отзыв — см. например http://teonos.com/blog/java/development/2014/11/10/experiences-with-jOOQ.html
== [http://javalite.io/activejdbc ActiveJDBC] ==
== Идея (велосипедик) — PHP-like ORM ==
Возможно, описанная суть Описанное примерно соответствует использованию либо jOOQ, либо Querydsl без JPAс дополнительно прикрученной улучшенной логикой Active Record.
* Объект «соединение». Умеет делать запросы в синтаксически кратком стиле (возможно, Fluent API) и возвращать записи в виде чего-то типа Map<String,Object>. Кроме того, является аналогом сессии/persistence manager’а для моделей.