Hibernate 在整个 Spring Boot 应用程序上设置属性访问策略
Posted
技术标签:
【中文标题】Hibernate 在整个 Spring Boot 应用程序上设置属性访问策略【英文标题】:Hibernate set property access strategy on whole Spring Boot application 【发布时间】:2019-08-09 05:53:33 【问题描述】:据我所知,Hibernate 提供了两种访问策略:FIELD 和 PROPERTY。可以通过在实体上方设置注解@Access
来定义它,但是在实现过程中每次都用策略设置@Access
有点令人沮丧。有没有办法在整个应用程序上设置“全局”访问策略?
【问题讨论】:
【参考方案1】:我认为 Spring Boot 默认不存在这样的属性。
但是,您可以为所有实体创建一个父类,以便在类级别只定义一次 @AccessType
。
文档
http://download.oracle.com/otn-pub/jcp/persistence-2.0-fr-eval-oth-JSpec/persistence-2_0-final-spec.pdf
2.3.1 默认访问类型(第23页)
默认情况下,单一访问类型(字段或属性访问)适用于 实体层次结构。实体层次结构的默认访问类型是 由属性上映射注释的位置决定 实体层次结构的实体类和映射超类 没有明确指定访问类型。
示例
@MappedSuperclass
@Access(value=AccessType.FIELD)
public class Parent
@Entity
public class Child extends Parent
...
【讨论】:
以上是关于Hibernate 在整个 Spring Boot 应用程序上设置属性访问策略的主要内容,如果未能解决你的问题,请参考以下文章
JPA Spring Boot Hibernate Rest API:为啥Hibernate在插入之前会删除?
Spring Boot 和 Hibernate:打印/记录 DDL
Hibernate 和 CRUDRepository Spring Boot
Spring Boot / JPA / Hibernate,如何根据 Spring 配置文件切换数据库供应商?
在spring boot集成测试中获取org.hibernate.LazyInitializationException