有些人,包括我在内,一直在努力与(这里特别是JavaSE的 ,例如合并来自不同模块(罐)实体整合到一个持久化单元JPA 2.0:从不同的JAR自动添加实体类PersistenceUnit * )。 基于答案有做到这一点不容易直接的方法。 一个解决方案是从单一的持久化单元文件中的所有jar文件列出所有的类,但这不是真正的优雅。 我可能会无意中发现的另一种方式。 一般来说,所有我的实体类使用注释映射。 至于解决: persistence.xml
可以包含多个XML映射文件,如:
main.jar文件META-INF / persistence.xml中!
<persistence-unit name="PU" transaction-type="RESOURCE_LOCAL">
<mapping-file>META-INF/order-mappings.xml</mapping-file>
<mapping-file>META-INF/customer-mappings.xml</mapping-file>
</persistence-unit>
映射文件可以放置在不同的罐。 我注意到的是,它们可能包含<entity>
没有任何属性的元素,例如:
order.jar!META-INF /订单mappings.xml
<entity-mappings>
<entity class="com.company.Order"></entity>
</entity-mappings>
即使映射文件中没有映射任何属性的Java类的注释考虑到反正 ,一切似乎工作就好了! 这将意味着可以容易地仅仅通过包括特定的JAR XML映射文件包含来自多个罐子成一个单一的持久化单元的实体。
我的问题是:这是允许的JPA映射文件使用或我的坚持提供商(休眠)只是一个副作用?