JPA 1 недостаточно хорош - PullRequest
1 голос
/ 19 сентября 2008

Работаем в среднем проекте в течение последних 4 месяцев - мы используют JPA и Spring - я вполне уверен, что JPA не мощный для проектов, которые требуют больше, чем CRUD экран ... Интерфейс запросов плохой, Hibernate нет уважать JPA спецификации все время и много раз мне нужно использовать спящие классы, аннотации и конфиг. Что вы, ребята, думаете о JPA? Разве это не достаточно хорошо?

Ответы [ 7 ]

4 голосов
/ 19 сентября 2008

Hibernate долгое время был в дороге. Вот почему он имеет много функций, которые пока недоступны в JPA. Но со временем JPA наверстает упущенное. До тех пор, при необходимости, используйте специфические настройки JPA и Hibernate. Если вам нужно переключиться позже, это будет намного проще.

4 голосов
/ 19 сентября 2008

Что ж, я думаю, что большую часть времени JPA "достаточно хорош", но я очень скучаю по Criteria API (предоставляется только Hibernate)

3 голосов
/ 28 мая 2010

Мы объединяем JPA 2.0, Hibernate Core, Hibernate Search и Hibernate Validator через нашу внутреннюю оболочку. Он делает все, что мы бросаем в него:)

Объедините это с Maven, и у нас тоже есть база данных! Добавьте DBUnit в смесь, и вы получите все, что вам нужно.

Невероятно быстрый поиск через Lucene, но использование Hibernate Criteria / HQL-запросов очень круто. Вся эта мощь, лежащая в основе коробки предложений GWT, великолепна.

3 голосов
/ 19 сентября 2008

Ну, я не могу дать конкретное руководство, не зная больше о вашем конкретном случае. Похоже, вы используете реализацию JPA Hibernate. Вы можете попробовать другие реализации JPA, если в Hibernate есть что-то, что вам не нравится. Что касается интерфейса запросов, если запросы JPA не выполняют то, что вы хотите, у вас всегда есть возможность получить простое старое соединение и работать с этим. Гениальность фреймворка в том, что, по крайней мере, вам больше не нужно писать весь код CRUD. Я бы никогда не сказал, что JPA совершенен, но это лучше, чем все время писать SQL вручную, чтобы делать тривиальные вещи.

2 голосов
/ 20 декабря 2008

Мой совет - просто использовать Hibernate. Hibernate в сочетании с аннотациями JPA + Hibernate довольно мощный. Вы даже можете настроить EntityManagerFactory для автоматического обнаружения сущностей на пути к классам, но затем вызвать getSessionFactory (), чтобы использовать собственные API Hibernate в вашем приложении. Если вы используете Spring, это очень легко сделать с помощью LocalContainerEntityManagerFactoryBean и HibernateJpaVendorAdapter.

0 голосов
/ 19 сентября 2008

Одной из приятных особенностей использования JPA против аннотаций Hibernate является автоматическая настройка и обнаружение постоянных классов. Кроме того, это зависит от того, сколько времени вам нужно отказаться от использования JPA API, если вы делаете это только в 10% случаев, это все равно сделает переключение поставщиков намного проще, чем если бы вы использовали спящий режим для 100 % ваших запросов.

0 голосов
/ 19 сентября 2008

Конечно, любой ORM лучше, чем рукописный SQL для операций CRUD ... Дело в том, что я думаю, что нет никакой причины использовать JPA вместо чистого Hibernate, потому что я смешиваю оба. Если я не получаю скрытого провайдера, зачем вообще использовать JPA?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...