是的!!
我找到了!
我继续:
在我的 applicationContext.xml 中,我导入了一个数据库资源:
<!-- included Spring contexts -->
<import resource="classpath:META-INF/contacts/contexts/db_context.xml"/>
在 db_context.xml 中,我声明了一个 JPA entityManagerFactory(我指的是 persistence.xml):
<!-- Declare a JPA entityManagerFactory -->
<bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
<property name="persistenceXmlLocation" value="classpath:META-INF/contacts/hibernate/persistence.xml" />
<property name="persistenceUnitName" value="hibernatePersistenceUnit" />
<property name="jpaVendorAdapter" ref="hibernateVendor" />
</bean>
在persistence.xml中,我定义了一个映射文件(ORM.xml):
<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="http://java.sun.com/xml/ns/persistence" version="1.0">
<persistence-unit name="hibernatePersistenceUnit" transaction-type="RESOURCE_LOCAL">
<properties>
<property name="hibernate.hbm2ddl.auto" value="update" />
<property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5InnoDBDialect" />
.....
</properties>
<mapping-file>META-INF/contacts/hibernate/orm.xml</mapping-file>
</persistence-unit>
</persistence>
在这个 orm.xml 文件中,我定义....什么都没有:
<?xml version="1.0" encoding="UTF-8"?>
<entity-mappings version="2.0" xmlns="http://java.sun.com/xml/ns/persistence/orm" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence/orm http://java.sun.com/xml/ns/persistence/orm_2_0.xsd">
<persistence-unit-metadata>
<persistence-unit-defaults>
</persistence-unit-defaults>
</persistence-unit-metadata>
</entity-mappings>
但是如果没有 maven 模块(只有一个 maven 项目(包含所有包和 conf 文件)或者如果每个模块中都存在 hibernate 包,它就可以工作!!
所以这是我的新 orm.xml :
<?xml version="1.0" encoding="UTF-8"?>
<entity-mappings version="2.0" xmlns="http://java.sun.com/xml/ns/persistence/orm" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence/orm http://java.sun.com/xml/ns/persistence/orm_2_0.xsd">
<package>com.mc.appcontacts.domain.hibernate</package>
<entity class="Client">
<table name="client" />
</entity>
<entity class="Contact">
<table name="contact" />
</entity>
<entity class="SystemUser">
<table name="system_user" />
</entity>
<entity class="User">
<table name="user" />
</entity>
<entity class="Userlogin">
<table name="userlogin" />
</entity>
<entity class="Userauth">
<table name="userauth" />
</entity>
<!-- <persistence-unit-metadata>
<persistence-unit-defaults>
</persistence-unit-defaults>
</persistence-unit-metadata> -->
</entity-mappings>
它适用于我只在 ContactCore 模块中定义的休眠包!