JBoss,Spring:persistence.xml - 为什么我应该避免使用这个文件名?

时间:2014-01-27 20:11:31

标签: java spring jpa jboss persistence.xml

在线源代码生成工具SpringFuse中建议使用Spring时不要命名持久性单元 persistence.xml 。而是将文件重命名为 spring-persistence.xml https://github.com/jaxio/generated-projects/blob/master/jpa2-backend/src/main/resources/META-INF/spring-persistence.xml。 他们说:

  

它被命名为spring-persistence.xml以防止JBoss选择它   自动,这会在我们使用Spring时造成混乱。

但为什么会造成混乱和什么类型的混乱? 我们使用spring并将文件命名为persistence.xml,它可以工作。我们使用JBoss AS 6.1。

1 个答案:

答案 0 :(得分:0)

最终可能会有两个相同的持久化上下文(EntityManagerFactory)副本,一个由JBoss引导,另一个由Spring应用程序上下文引导。我还记得,JBoss对persistence.xml验证非常严格,因此您最终可能会遇到验证问题(例如,显式列出实体类与类路径扫描)。如果你遇到问题,禁用JBoss扫描说起来容易做起来难。

无论如何,请注意,如果您使用的是最新版本的Spring(3.1.x +?),则根本不需要persistence.xml。见http://docs.spring.io/spring/docs/3.2.6.RELEASE/javadoc-api/org/springframework/orm/jpa/LocalContainerEntityManagerFactoryBean.html#setPackagesToScan(java.lang.String...)