读书人

jpa有关知识总结

发布时间: 2012-11-17 11:14:14 作者: rapoo

jpa相关知识总结

1)jpa 需要在classpath中存在jpa实现jar才行,比如hibernate-entitymanager.jar,下面有META-INF\services javax.per...文件中配置了jpa实现
org.hibernate.ejb.HibernatePersistence

当classpath下没有jpa实现jar是不会启动jpa的。

2)jpa会找classpath所有的META-INF/persistence.xml文件,如果有多个包含persistence.xml文件的jar可能会产生冲突,所以要避免classpath下同时存在多个包含persistence.xml文件的jar

3)为了实现将实体放入不同的jar中,jpa提供了jar-file和class方式,jar-file按文件路径加载,../。。jar表示与META-INF同级下的jar。通过<jar-file>方式引入的jar也会加入到classpath中,所以要避免这些jar中包含persistence.xml文件,可以通过maven的prifile动态决定是否将persistence.xml文件打入jar中。

<persistence-unit name="bspGroup1">
??<provider>org.hibernate.ejb.HibernatePersistence</provider>
????????<jta-data-source>java:/bspGroup1DataSourceSMP</jta-data-source>
??????? <jar-file>../isss-domainmodel-1.0.0-SNAPSHOT.jar</jar-file>

????????<jar-file>../isss-domainmodel-222.jar</jar-file>
????????<class>sample.EntityA</class>

??????? <class>sample.EntityB</class>

????????<properties>。。。。。。。。。

4)数据源配置文件(xxxds.xml)可以放在包含persistence.xml文件的jar里面,与META-INF平级,不用非要放在jboss的deploy目录下面,但要保证各ear下的ds不会重复,因为他们都要去同一jndi中注册。

读书人网 >软件架构设计

热点推荐