Использование Eclipselink JPA: как настроить развертывание при запуске в файле persistence.xml - PullRequest
1 голос
/ 21 декабря 2011

Я использую Eclipselink в glassfish для развертывания приложения, и я хотел бы использовать новое свойство Eclipse 2.3 DEPLOY_ON_STARTUP , чтобы немного ускорить свои действия.Я использую Netbean 7.0 и glassfish 3.1.1 для своей разработки.

Мой вопрос: как я могу настроить это в Persistence.xml?Я попробовал следующее, и он не смог развернуться.

<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.0" xmlns="http://java.sun.com/xml/ns/persistence"....

  <persistence-unit name="MyPU" transaction-type="JTA">   
    <jta-data-source>myDataSource</jta-data-source>
    <exclude-unlisted-classes>false</exclude-unlisted-classes>      

    <properties>
       <DEPLOY_ON_STARTUP>True</DEPLOY_ON_STARTUP>
    </properties>

  </persistence-unit>

</persistence>

Если мне нужно установить это свойство в коде, как мне это сделать?Вики eclipselink сообщает:

EntityManagerFactory emf = Persistence.createEntityManagerFactory("pu-name", props);

Но я использую аннотацию @EJB и не управляю EntityManagerFactory или сущностью в своем коде.

1 Ответ

1 голос
/ 22 декабря 2011

Ваш подход не работает, потому что элементы внутри properties-element должны быть property-elements, которые являются name-value -pairs. Попробуйте

<property name="eclipselink.deploy-on-startup" value="True" />

вместо этого. Я не уверен, дает ли это такое улучшение скорости, что вы ищете, в соответствии с Javadocs:

Это может увеличить время запуска сервера JavaEE, но позволит избежать первый запрос от зависания при развертывании модуля персистентности.

...