Ответ 1
В то время как jOOQ и Hibernate конкурируют за одну и ту же целевую аудиторию, они не решают одну и ту же проблему вообще. Вы уже связали эту статью в своем вопросе. Суть его проста:
- Вы собираетесь решать проблемы сохранения графа объектов? Используйте ORM (например, Hibernate)
- Собираетесь ли вы внедрять SQL в Java? Использовать SQL (например, jOOQ)
Конечно, поскольку оба API охватывают доступ к реляционным базам данных, они в определенной степени перекрываются в функциональности. Например, Hibernate также поддерживает простой запрос, в то время как jOOQ также поддерживает простое сопоставление.
Хотя нам следует избегать обсуждения в субъективных дискуссиях о том, является ли постоянство графа объектов или SQL лучшим при взаимодействии с вашей базой данных, я думаю, что приведенное выше является довольно объективным ответом на то, какой API лучше подходит, как только вы приняли субъективное решение.
И: вы можете использовать оба, например ORM/Hibernate для CRUD, SQL/jOOQ для отчетов.
(Отказ от ответственности: я работаю в компании за jOOQ, поэтому этот ответ предвзято)