13 651
правка
Изменения
м
Возможно, описанное Описанное примерно соответствует либо jOOQ. , либо Querydsl тоже чем-то похож, но у него нет класса «Запись»с дополнительно прикрученной улучшенной логикой Active Record.
Нет описания правки
== [http://www.querydsl.com/ Querydsl] ==
Типобезопасное (импортирующее схему в Java классы) Fluent API построения SQL-запросов.
Плюсы:
* УниверсаленAPI построения запросов довольно удобное.* Универсальный, работает как с JPA, так и с голым SQL. Минусы:* Хоть и может возвращать DTO’шки (кроме обычного Tuple), они не является ActiveRecord’ами, то есть никакой логики их обновления или подгрузки связей нет. То есть, скорее должен рассматриваться как дополнение к мапперу.
== [http://www.jooq.org/ jOOQ] ==
Плюсы:
* Легковесный Active Record + 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, разрешающей коммерческое использование.
== Идея (велосипедик) — PHP-like ORM ==
* Объект «соединение». Умеет делать запросы в синтаксически кратком стиле (возможно, Fluent API) и возвращать записи в виде чего-то типа Map<String,Object>. Кроме того, является аналогом сессии/persistence manager’а для моделей.