yan*_*isf 13 java orm code-reuse hibernate jpa
有没有办法在多个SE应用程序中重用带有JPA注释实体的jar(作为依赖项)?在SE环境中不支持persistence.xml中的<jar-file>,那么还有另一种方法吗?
正式(根据规范),您必须使用该class元素指定所有类.引用的章节6.2.1.6映射文件,JAR文件,类,排除-不公开的类的的JSR-220:
还可以指定命名的托管持久性类列表,而不是JAR文件和映射文件.将处理在这些类上找到的任何映射元数据注释,或者使用映射注释默认值映射它们.该
class元素用于列出托管持久性类.必须在Java SE环境中指定所有命名的托管持久性类的列表,以确保可移植性.可移植Java SE应用程序不应依赖此处描述的其他机制来指定持久性单元的托管持久性类.持久性提供程序还可能要求必须persistence.xml在Java SE环境中的每个文件中完全枚举要管理的实体类和类集.
现在,如果您不介意不可移植,Hibernate 支持jar-file在Java SE中使用该元素(在这种情况下,需要绝对URL,而不是方便).即使在JSE中,Hibernate实际上也支持自动检测.好多了:
<persistence xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd"
version="1.0">
<persistence-unit name="foo">
<!-- This is required to be spec compliant, Hibernate however supports auto-detection even in JSE. -->
<class>foo.Bar<class>
<properties>
<!-- Scan for annotated classes and Hibernate mapping XML files -->
<property name="hibernate.archive.autodetection" value="class, hbm"/>
...
</properties>
</persistence-unit>
</persistence>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9680 次 |
| 最近记录: |