2008-09-19 2 views
1

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

+0

Hibernate имеет свои собственные аннотации, которые они распространяются дальше, чем предлагает JPA. – 2008-09-19 18:14:23

+4

Название должно быть изменено с «JPA» на «JPA 1» – HDave 2010-06-08 14:38:14

ответ

4

Ну я думаю, что большую часть времени JPA является «достаточно хорошо», но я скучаю по Criteria API много (только предоставленный Hibernate)

3

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

0

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

0

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

4

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

2

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

3

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

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

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

Смежные вопросы