Как мы можем использовать JPA2 (Hibernate) сущности в качестве DTO между двумя веб-приложениями? - PullRequest
5 голосов
/ 21 февраля 2011

Привет, ребята. Мы работаем на Glassfish 3.0.1 и используем Hibernate 3.5.3.Настройка нашего проекта выглядит следующим образом:

frontend.war

common.jar

backend.war

Мы хотели бы поместить аннотированные объекты jpa2 вcommon.jar таким образом, что бэкэнд обрабатывает их как сущности JPA2, но внешний интерфейс должен видеть их только как POJO / DTO.Мы думали, что это можно сделать, поместив persistence.xml в backend.war и не имея persistence.xml во внешнем интерфейсе.Это не работает, после запуска бэкэнда и вызова entityManager.getMetamodel (). GetEntities () мы получаем пустой список.Все запросы терпят неудачу с исключениями: «Не сущность: com.example.model.OurEntity».

Мы пробовали как с, так и без beans.xml в common.jar.

Любая идея, чтомы делаем не так?Можно ли использовать эту структуру с JPA2?

1 Ответ

5 голосов
/ 21 февраля 2011

Если аннотированные объекты находятся не в том же файле, что и persistence.xml, необходимо добавить <jar-file> к persistence.xml. В зависимости от вашей настройки это может выглядеть так:

<jar-file>lib/common.jar</jar-file>
...