二十、springboot之jpa开发@MappedSuperclass 注解说明
@MappedSuperclass使用条件: 当我们进行开发项目时,我们经常会用到实体映射到数据库表的操作,此时我们经常会发现在我们需要映射的几个实体类中,有几个 共同的属性 ,例如编号ID,创建者,创建时间,修改者,修改时间,备注等。遇到这种情况,我们可能会想到把这些属性 抽象出来当成一个父类,然后再以不同的实体类来继承这个父类 。 那么,我们便可以使用 @MappedSuperclass注解 ,通过这个注解,我们可以将该实体类当成基类实体,它 不会映射到数据库表 ,但继承它的子类实体在映射时会自动扫描该基类实体的映射属性,添加到子类实体的对应数据库表中。 @MappedSuperclass使用场景深入了解 基于代码复用和模型分离的思想,在项目开发中使用JPA的 @MappedSuperclass 注解将实体类的多个属性分别封装到不同的非实体类中。 1.@MappedSuperclass注解只能标准在类上,用来标识父类的: @Target({java.lang.annotation.ElementType.TYPE}) 2.标注为@MappedSuperclass的 类将不是一个完整的实体类 ,他将不会映射到数据库表,但是他的属性都将映射到其子类的数据库字段中。 3.标注为@MappedSuperclass的 类不能再标注@Entity或@Table注解