我在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或实体。
答案 0 :(得分:1)
您的方法不起作用,因为properties-element中的元素应该是property-elements,它们是name-value -pairs。试试
<property name="eclipselink.deploy-on-startup" value="True" />
代替。根据javadocs的说法,我不确定它能提供你正在寻找的速度提升吗?
这可能会增加JavaEE服务器的启动时间,但会避免使用 当部署持久性单元时,第一个请求来自挂起。