persistence.xml 中的自动实体扫描
在 Java Persistence API (JPA) 中,实体通常在 persistence.xml 部署描述符中声明使用
答案是肯定的,但有一定的条件和限制。
使用“jar-file” " 元素
persistence.xml 文件可以包含
示例:
<persistence> <persistence-unit name="eventractor" transaction-type="RESOURCE_LOCAL"> <jar-file>MyEventractor.jar</jar-file> <!-- Explicit listing of entity classes is still allowed --> <class>pl.michalmech.eventractor.domain.User</class> <class>pl.michalmech.eventractor.domain.Address</class> <class>pl.michalmech.eventractor.domain.City</class> <class>pl.michalmech.eventractor.domain.Country</class> <properties> <property name="hibernate.hbm2ddl.auto" value="validate" /> <property name="hibernate.show_sql" value="true" /> </properties> </persistence-unit> </persistence>
Hibernate 特定的自动检测(Java SE)
特别是在 Hibernate 中,即使 JPA规范并不要求它,即使在 Java SE 应用程序中也支持实体的自动检测。要启用此功能,请将以下属性添加到持久性单元:
<property name="hibernate.archive.autodetection" value="class, hbm" />
这允许 Hibernate 扫描使用 @Entity 注释的类以及由指定的 JAR 文件中的 Hibernate 映射文件 (.hbm.xml)
限制
需要注意的是,依赖自动实体扫描可能并不总是最佳实践。在类路径可见性是动态的或存在多个实体定义冲突的模块的情况下,显式类列表可以提供更好的控制。
以上是JPA可以自动扫描@Entity注解的实体吗?的详细内容。更多信息请关注PHP中文网其他相关文章!