使用Eclipselink JPA:如何在persistence.xml中设置deploy-on-startup

时间:2011-12-21 18:30:01

标签: jpa glassfish eclipselink

我在glassfish中使用Eclipselink来部署应用程序,我想使用新的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 wiki说:

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

但是我使用的是@EJB注释,我没有在代码中管理EntityManagerFactory或实体。

1 个答案:

答案 0 :(得分:1)

您的方法不起作用,因为properties-element中的元素应该是property-elements,它们是name-value -pairs。试试

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

代替。根据javadocs的说法,我不确定它能提供你正在寻找的速度提升吗?

  

这可能会增加JavaEE服务器的启动时间,但会避免使用   当部署持久性单元时,第一个请求来自挂起。