2008-09-18 2 views
3

Я использую EJB 3 в довольно большом проекте J2EE, по умолчанию Netbeans устанавливает постоянный провайдер для сущностей bean для TopLink. Существует возможность изменить поставщика к одной из следующих или даже добавить новую библиотеку настойчивость:Какой постоянный провайдер EJB 3 я должен использовать?

  • гибернации
  • KODO
  • OpenJPA

Какое упорство поставщика вы предпочитаете использовать ? Каковы преимущества использования другого провайдера?

Хотя TopLink кажется хорошим, я не могу найти много хорошей документации о том, как контролировать кеширование и т. Д. Любая помощь будет высоко оценена.

ответ

7

Theres только две JPA поставщиков я бы рассмотреть возможность использования:

Если вы хотите придерживаться стандартных JPA Я хотел бы использовать EclipseLink. В то время как Toplink Essentials является эталонной реализацией JPA 1.0, EclipseLink в основном унаследовал код TopLink Essentials и будет эталонной реализацией JPA 2.0 (и в комплекте с Glassfish V3, когда он отправляется, ожидается в JavaOne в мае 2009 года). TopLink Essentials была несколько искалеченной версией коммерческого продукта TopLink от Oracle, но EclipseLink в основном обладает всеми функциями TopLink.

Другой выбор - это, очевидно, спящий режим. Он широко используется и зреет, но не исключает того, что я видел. Например, последнее, что я видел в Hibernate, имеет проблемы с сущностью, имеющей множественные отношения «один ко многим». Я не знаю, имеет ли Hibernate эквивалент подсказки пакетного запроса EclipseLink, но это невероятно полезная функция для решения этой проблемы.

Спящий режим, конечно, также поддерживает стандарт JPA. Самое большое преимущество Hibernate заключается в том, что если у вас возник вопрос о том, как он работает, поиск Google, скорее всего, найдет вам ответ.

Я честно не буду рассматривать ничего, кроме вышеупомянутых двух провайдеров.

+2

почему бы вам не рассмотреть OpenJPA. Каждая реализация имеет свои преимущества и недостатки ... – b3bop 2012-01-18 00:17:29

2

Я настоятельно рекомендую Hibernate по следующим причинам:

  • Наиболее широко используется и уважал с открытым исходным кодом уровня персистенции в мире Java; огромное активное сообщество и много использования в высокопроизводительных критически важных приложениях.
  • Вы не привязываетесь непосредственно к J2EE или конкретному вендору, если хотите пойти другим путем с остальной частью вашего приложения, например Spring и т. Д., Поскольку Hibernate все равно будет играть хорошо.
2

Я нашел Hibernate достаточно хорошо документированным и хорошо поддерживаемым различными технологиями кеширования. Я также использовал его немного больше, чем другие в не-JPA-контекстах, поэтому, возможно, я немного склонен к этому из-за этого.

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

1

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

0

Недавно я работал над большим корпоративным приложением, созданным с использованием инфраструктуры Kodo JPA. SQL-файлы, созданные Kodo, обычно не очень масштабируемы с большим объемом данных. По-моему, это вызвало слишком много запросов с внешними соединениями. Учитывая, сколько отображений мы должны были изменить при попытке масштабирования kodo, я бы не рекомендовал использовать его для большого корпоративного приложения. Даже представители Oracle, с которыми мы беседовали, пытаются отделить клиентов от kodo на TopLink. Oracle может поэтапно отказаться от kodo в будущем.

0

DataNucleus http://www.datanucleus.org также полностью совместимый поставщик JPA, с JPA1 и некоторые особенности предварительного просмотра JPA2

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