根据Hibernate documentation,@Id
批注的位置决定了Hibernate如何访问实体(字段或访问者)
作为JPA提供者,Hibernate可以同时检查实体属性(实例字段)或访问器(实例属性)。默认情况下,@ Id注释的位置提供默认的访问策略。当放在一个字段上时,Hibernate将假定基于字段的访问。 Hibernate放在标识符getter上,将使用基于属性的访问。
是否可以通过属性进行全局定义(以避免在每个实体或可嵌入对象上放置@Access(AccessType.FIELD)
)?
我找到了this related question,但这是专门用于Spring Boot的。
答案 0 :(得分:0)
您可以创建一个名为orm.xml
的文件并将其放在目录META-INF
中的类路径中。
在该文件中,您可以设置默认值。例如访问类型:
<?xml version="1.0" encoding="UTF-8"?>
<entity-mappings>
<persistence-unit-metadata>
<access>PROPERTY</access>
</persistence-unit-metadata>
</entity-mappings>
您可以在此处找到XML模式:https://github.com/hibernate/hibernate-orm/blob/master/hibernate-core/src/main/resources/org/hibernate/jpa/orm_2_2.xsd