Как использовать JPA вне веб-проекта? - PullRequest
2 голосов
/ 25 июня 2010

Я использовал eclipselink в веб-проекте в NetBeans. Работает красиво и легко. Как я могу сделать то же самое в проекте, не связанном с Интернетом (консольное приложение)?

В моем веб-приложении у меня есть:

@PersistenceUnit
EntityManagerFactory enf;

Который создает экземпляр enf. Это не работает в консольном приложении.

Ответы [ 3 ]

3 голосов
/ 25 июня 2010

В случае веб-контейнера или контейнера приложения контейнер вводит EntityManagerFactory, когда вызывается аннотация @PersistenceUnit.Это не подходит для консольного приложения.

Возможные способы достижения этого:

  1. Чтобы включить Spring (который выполняет ту же работу, что и ваш веб-контейнер).Пожалуйста, обратитесь к учебнику Начало работы с JPA весной 2.0

Или

Чтобы самостоятельно написать код инициации, выполните следующие действия.

EntityManagerFactory emf = Persistence.createEntityManagerFactory("PersistenceUnitName");
2 голосов
/ 25 июня 2010

Хорошо, мне просто нужно позвонить

enf = Persistence.createEntityManagerFactory("JavaApplication39PU");

Где JavaApplication39PU - имя, найденное в META-INF / persistence.xml

1 голос
/ 02 июля 2010

При работе в контейнере EJB3 (или Spring) вы получаете преимущества динамического переплетения с EclipseLink.Если вы работаете в сценарии JavaSE, я бы рекомендовал использовать -javaagent для включения динамического переплетения, чтобы ваше приложение работало одинаково.

...