首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >JPA使用替代的"persistence.xml“

JPA使用替代的"persistence.xml“
EN

Stack Overflow用户
提问于 2011-08-29 16:30:08
回答 6查看 35.6K关注 0票数 21

我知道有这样的指示:

代码语言:javascript
复制
Persistence.createEntityManagerFactory("persistence-unit-name");

JPA持久性机制读取"persistence.xml“文件,查找名为" persistence - unit -name”的持久性单元,并基于它构造EntityManagerFactory。

我的问题是,如何强制JPA接受与“persistence.xml”不同的文件??例如,"persistence-test.xml“。

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2011-08-29 16:38:44

没有标准化的JPA方法可以做到这一点,尽管各个JPA提供商可能提供了一种方法。我建议使用标准的方法为main和test设置不同的类路径。

例如,如果您使用Maven,并且您有两个META-INF/persistence.xml文件,一个在src/main/resources中,另一个在src/test/resources中,测试将选择src/test/resources中的文件,因为Maven在类路径中将测试类/资源放在主类/资源之前。您可以很容易地将Ant配置为以类似的方式工作。

如果您需要更高级的逻辑,请考虑使用Spring's JPA support。它可以让你处理像integrating multiple persistence.xml files这样的高级情况。

票数 20
EN

Stack Overflow用户

发布于 2012-04-12 06:53:24

在EclipseLink中,您可以执行以下操作:

代码语言:javascript
复制
Properties pros = new Properties();

pros.setProperty(PersistenceUnitProperties.ECLIPSELINK_PERSISTENCE_XML, 
                 "META-INF/persistence-alternative.xml");


EntityManagerFactory factory = 
    Persistence.createEntityManagerFactory("pu-name", pros);
票数 15
EN

Stack Overflow用户

发布于 2011-08-29 16:41:30

我觉得你做不到。要做到这一点有很长的路要走:

中读取,而是从properties地图中读取

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7227814

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档