在玩springboot jpa的时候都会定义一个实体类,与数据库表相对应,但是,有时候有些字段,每个表都存在,我们就可以抽出一个类写这些公用的,来继承即可,但是继承发现,会出现映射错误的问题,就比如下面这个,我抽出父类里面写的是createdTime。
Invocation of init method failed; nested exception is java.lang.IllegalArgumentException: Failed to create query for method public abstract java.util.List xxxx(java.lang.Long)! Unable to locate Attribute with the the given name [createdTime] on this ManagedType [xxxx]
出现这个问题其实很简单,在父类上添加一个注解即可
@MappedSuperclass
@Data @MappedSuperclass @NoArgsConstructor public class BaseTablePO { @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @CreationTimestamp private Timestamp createdTime; @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @UpdateTimestamp private Timestamp updatedTime; }