我想将我的jpa / swing项目导出到一个可运行的jar中。但我希望persistence.xml不在包装里面的jar之外,所以我可以在不需要在每次配置后再次导出jar的情况下更改它。
答案 0 :(得分:3)
根据JPA规范,在定义持久性单元的JAR文件之外无法检测到persistence.xml
文件。按照惯例,它应该放在META-INF
目录中。
阅读JSR-317第8.2.1段了解更多详情(http://download.oracle.com/otndocs/jcp/persistence-2.0-fr-eval-oth-JSpec/)。
尽管如此,您可以尝试这个人提出的提示here并以爆炸形式部署您的档案。
答案 1 :(得分:1)
我遇到了同样的问题,但我只需要更改服务器,数据库,用户和密码。所以这对我来说是这样的:
在JBoss AS中,您甚至可以将属性值作为占位符,例如:
<property name="javax.persistence.jdbc.url" value="jdbc:sqlserver://${DbServer}:1234;databaseName=${DbName}" />
<property name="javax.persistence.jdbc.user" value="${DbUser}" />
<property name="javax.persistence.jdbc.password" value="${DbPassword}" />
然后传递&#34; DbServer&#34;,&#34; DbName&#34;,&#34; DbUser&#34;和&#34; DbPassword&#34; value作为Java系统属性:
-DDbServer=sql99 -DDbName=db_Name -DDbUser=USER -DDbPassword=pw
在Eclipse中: