使用Spring和Hibernate时需要persistence.xml吗?
我正在使用Spring JPA和Hibernate的项目。可以在Spring applicationContext.xml文件中指定persistence.xml中的大多数内容。
那么是否还需要persistence.xml?
谢谢。
回答:
Spring 3.1将支持persistence.xml
免费的JPA配置,请参阅Spring 3.1 M2:配置增强。
darioo的答案适合实际使用,但技术上并不正确。
PersistenceProvider
有两种工厂方法:
EntityManagerFactory createEntityManagerFactory(String emName, Map map)
-对于独立环境,persistence.xml
将由持久性提供程序进行解析。EntityManagerFactory createContainerEntityManagerFactory(PersistenceUnitInfo info, Map map)
-对于应用程序服务器环境,persistence.xml
由应用程序服务器解析,其内容作为传递PersistenceUnitInfo
。
Spring LocalContainerEntityManagerFactoryBean
模拟应用服务器环境。因此,它解析persistence.xml
自身,将其内容与应用程序上下文中的值合并,然后使用第二个工厂方法将其传递给持久性提供程序。
但是,获取persistence.xml
数据的过程是可配置的:
你可以
persistence.xml
使用persistenceXmlLocation
属性配置文件名-避免与应用程序服务器的默认JPA初始化策略冲突很有用。你可以
PersistenceUnitInfo
通过设置自定义PersistenceUnitManager
策略来完全覆盖来源。
因此,实际上你可以在Spring中配置JPA,而无需persistence.xml
编写定制程序PersistenceUnitManager
,尽管这种管理器不是开箱即用的。
以上是 使用Spring和Hibernate时需要persistence.xml吗? 的全部内容, 来源链接: utcz.com/qa/413836.html