Spring Boot + JPA Entity Annotation不生效问题记

Spring boot + JPA Entity Annotation 不生效问题记

版本

  • spring boot: 1.5.9
  • hibernate: 5.2.12

    问题描述

    在Entity的field上添加注解@Enumerated@Column@Lob不生效,但加在getter方法上有效,有用采用lombok, 写getter方法就多余了

    解决过程

    查询大部分资料是说hibernate naming strategy调整导致的,但怎么调整都不对不生效,后来发现加在getter方法上发现有效。发现原来是Jpa访问策略默认是AccessType.PROPERTY

@Access注解

JPA的@Access批注,其值定义在AccessType枚举类中,包括AccessType.FIELDAccessType.PROPERTY,这两个类型定义了实体的访问模式(Access mode)

解决方案

在Entity上增加@Access(AccessType.FIELD)注解

参考: