Работая в проекте среднего размера в течение последних 4-х месяцев - мы используем JPA и Spring - Я совершенно уверен, что JPA не мощные для проектов, которые требуют более CRUD экрана .. . Интерфейс запроса плохой, Hibernate не уважать спецификацию JPA все время и много раз мне нужно использовать классы, аннотации и конфиг гибернации. Что вы думаете о JPA? Разве это недостаточно хорошо?JPA-не достаточно хорошо
ответ
Ну я думаю, что большую часть времени JPA является «достаточно хорошо», но я скучаю по Criteria API много (только предоставленный Hibernate)
Ну я не могу дать конкретные указания, не зная больше о вашем конкретном случае , Похоже, вы используете JPA для Hibernate. Вы можете попробовать другие реализации JPA, если что-то о Hibernate вам не нравится. Что касается интерфейса запроса, если запросы JPA не делают то, что вы хотите, у вас всегда есть возможность получить обычное старое соединение и работать с ним. Гениальность рамки заключается в том, что, по крайней мере, вам больше не нужно писать весь код CRUD. Я бы никогда не требовал, чтобы JPA была совершенна, но это лучше, чем ручное письмо SQL все время, чтобы делать тривиальные вещи.
Уверен, что любой ORM лучше, чем ручной SQL-запрос для CRUD-операций ... вещь такова: я думаю, что нет смысла использовать JPA вместо чистого Hibernate, потому что я смешиваю много. Если я не получу скрытого провайдера, зачем использовать JPA?
Одна из приятных особенностей использования JPA и Hibernate Annotations - это автоматическая настройка и обнаружение постоянных классов. Кроме того, это зависит от того, сколько времени вам нужно, чтобы отказаться от использования JPA API, если вы делаете это только в 10% случаев, это все равно сделает поставщиков коммутаторов намного проще, чем если бы вы использовали спящий режим для 100 % ваших запросов.
Hibernate долгое время находился в дороге. Вот почему у него много функций, недоступных в JPA. Но со временем JPA догонит. До тех пор, если необходимо, используйте специальные настройки JPA и Hibernate. Если вам нужно будет переключиться позже, это будет намного проще.
Моим советом было бы просто использовать Hibernate. Hibernate в сочетании с аннотациями JPA + аннотации Hibernate довольно мощные. Вы даже можете настроить EntityManagerFactory на автообнаружение Entities в пути к классам, а затем вызвать getSessionFactory(), чтобы использовать собственные API-интерфейсы Hibernate в вашем приложении. Если вы используете Spring, это очень легко сделать с помощью LocalContainerEntityManagerFactoryBean и HibernateJpaVendorAdapter.
Мы объединяем JPA 2.0, Hibernate Core, Hibernate Search и Hibernate Validator через нашу внутреннюю оболочную инфраструктуру. Он делает все, что мы бросаем на него :)
Объедините это с Maven, и у нас есть база данных, построенная для нас тоже! Добавьте DBUnit в микс, и у вас есть все, что вам нужно.
Зло быстрый поиск через Lucene, но использование Hibernate Criteria/HQL-запросов очень круто. Вся эта сила за коробкой предложений GWT великолепна.
- 1. Единичное тестирование: «достаточно хорошо» достаточно хорошо?
- 2. достаточно хорошо «целая» проверка?
- 3. Когда to_json * почти * достаточно хорошо
- 4. Переопределение hashCode() - это достаточно хорошо?
- 5. чат-приложение с cometd только достаточно хорошо?
- 6. Что действительно «достаточно хорошо» для позднего проекта?
- 7. SQLite для iOS - RANDOM() не достаточно хорошо
- 8. Встраивается в ASP.NET Членство Хеширование достаточно хорошо?
- 9. XSS - Черный список следующих персонажей достаточно хорошо заботится о XSS?
- 10. Формат-патч работает достаточно хорошо, ищет лучший способ
- 11. JavaScript - Фильтрует '<' достаточно хорошо, чтобы защитить HTML перед отображением?
- 12. играть! развертывание: netty достаточно хорошо для 5k уникальных посетителей?
- 13. Python PhoneNumber регулярное выражение не работает достаточно хорошо
- 14. Достаточно ли достаточно атомной операции
- 15. Достаточно ли достаточно билетов на проверку подлинности?
- 16. Цель wx.App, когда достаточно показать рамку достаточно
- 17. Достаточно ли достаточно авторизации URL в ASP.NET?
- 18. достаточно PDO?
- 19. mb_strlen() достаточно?
- 20. этот GetHashCode достаточно хорош?
- 21. Достаточно ли достаточно Xamarin для разработки приложений для социальных платформ?
- 22. PHP - Нужно ли еще проверять IF ISSET? .... или IF ($ _GET) достаточно хорошо?
- 23. .NET 4.0 CTP и EF CTP - это достаточно хорошо для производственного кода?
- 24. Кинетические JS текст запроса выравнивают MENT не достаточно хорошо, чтобы мое требование
- 25. Когда вы проверяете, является ли файл MP3, проверка строки имени файла с помощью .EndsWith достаточно хорошо?
- 26. Ограничение 4GB для этих встроенных/экспресс-DB достаточно хорошо? что будет дальше, если будет достигнуто ограничение?
- 27. Является ли стандартным .gitignore, который поставляется с каждым новым проектом Android Studio достаточно хорошо?
- 28. WSAASyncSelect достаточно хорошо? Не могли бы вы предложить альтернативу? Является ли Indy лучше?
- 29. Как проверить, содержит ли изображение лицо, и оно достаточно хорошо видно
- 30. Исключение подкласса в Java: когда это не пользовательское сообщение «достаточно хорошо»?
Hibernate имеет свои собственные аннотации, которые они распространяются дальше, чем предлагает JPA. – 2008-09-19 18:14:23
Название должно быть изменено с «JPA» на «JPA 1» – HDave 2010-06-08 14:38:14