LINUX.ORG.RU

А есть ли годный ORM для Java?

 , , ,


0

3

Ну чтоб вообще-вообще RAW-SQL не писать и делать все запросы одними объектами, все-таки что ни говори, а LINQ - это классно.

★★★★★

Последнее исправление: LongLiveUbuntu (всего исправлений: 1)

Ответ на: комментарий от LongLiveUbuntu

Возможно у тех кто плюется на Hibernate, и фантазирует о смене движка ORM.. На деле, JPQL это урезанный HQL, а HQL - в продакшене есть.

anonymous
()

есть еще Querydsl, но о продакшене вопрос будет открыт. Я б не связывался

anonymous
()
Ответ на: комментарий от LongLiveUbuntu

Таки да, SORM выглядит Ъ, но раз такая пьянка, с JPQL в целом жить можно.

Insomnium ★★★★
()

пример linq из википедий:

var q = from o in db.Orders from c in db.Customers
    where o.Quality == «200» && (o.CustomerID == c.CustomerID)
    select new { o.DueDate, c.CompanyName, c.ItemID, c.ItemName };
напомнило circumflex orm, такое же страшилище

anonymous
()
Ответ на: комментарий от LongLiveUbuntu

JPQL в продакшене есть?

ЧЕ?

А что же еще в продакшне то? HQL? С него спрыгивают уже давненько

vertexua ★★★★★
()

Оптимальный вариант для РСУБД - Spring Data + JPA. Для чистого JavaEE тоже вроде городили подобное, CDI Query кажись

vertexua ★★★★★
()

Есть mybatis, ещё когда-то использовал nanorm - он самый лёгкий и удобный, но сейчас он уже помер.

GblGbl ★★★★★
()
Ответ на: комментарий от anonymous

В JPA есть такая прикольная штука - по сущностям генерятся всякие доп-классы с константами-названиями полей. В связке с Criteria API получаем полностью статически типизированный ORM. По-моему годно. В Hibernate такого не видел.

А HQL, JPQL это всё неудобная гадость. SQL и то удобней.

Legioner ★★★★★
()

Есть. JPA 2.x и JPQL с декабря 2009 года в Java EE присутствует. То есть немногим более 4 лет доступен API ORM в стандартной реализации.

iZEN ★★★★★
()

еще раз расскажу про jOOQ. Мне понравилось.

bvn13 ★★★★★
()
Ответ на: комментарий от LongLiveUbuntu

Да, без raw-sql

В настройках хибермейта выставляй автогенерацию схем по объектам.

Adonai ★★★
()
Ответ на: комментарий от LongLiveUbuntu

Книжка «Разработка приложений Java EE 6 в NetBeans 7» Дэвида Хеффельфингера вразумит тебя.

iZEN ★★★★★
()
1 сентября 2014 г.
Ответ на: комментарий от Legioner

Criteria API

Так ведь придется и запросы в нем писать. У меня сделать их хоть сколько-нибудь человекочитаемыми не получалось, да и не для того они.

Это больше для динамически формируемых запросов.

Sunil
()
Ответ на: комментарий от Sunil

Это не только для динамически формируемых запросов, а ещё и для будущих изменений схемы (меняется схема - с необходимостью нужно переделывать все места, которые затронуты данным изменением - компилятор просто не соберёт места, написанные под старую схему), портируемости (возможно подкладывание какой-нибудь не RDBMS) итп. Реальность, конечно, сложнее, но, в целом, код более контролируемый. Да, я помню, что code coverage в идеале должен быть over 146% :)

AlexM ★★★★★
()
Ответ на: комментарий от stevejobs

Hibernate мощный, но все же низкоуровневый достаточно. Сравни его с ORM у Rails где SQL нужен только для уточнения подзапросов.

anonymous
()

посмотрите в сторону jOOQ

PS/ а я уже советовал, оказывается :)

bvn13 ★★★★★
()
Последнее исправление: bvn13 (всего исправлений: 1)
Ответ на: комментарий от AlexM

Для валидации того же JPQL можно использовать @NamedQuery, конечно, не во время компиляции, а во время деплоя но и Criteria API требуют пересборку классов. В любом случае эта проблема удачно решается через автоматизированное интеграционное тестирование в обоих случаях.

Sunil
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.