ios 在一个类中新增一个类_Hibernate 5 @Entity 如何 extends 另外一个类

1ba9d82c4ff7a54b33ab906ce8194cfd.png

在实际项目设计中,我们可以希望在 JPA 中定义 @Entity 表。
但是在这个 @Entity 类中,我们希望 extends 另外一个类,在另外一个类中我们可以把一些通用的属性设置到里面。
例如:
public class Covid19Current extends DataObject implements java.io.Serializable { }
那么我们应该在 DataObject 添加什么注解?


需要在 DataObject 中添加 @MappedSuperclass 注解。
可以定义成如下:
@MappedSuperclass public abstract class DataObject { }
@MappedSuperclass注解只能标准在类上:@Target({java.lang.annotation.ElementType.TYPE})
标注为@MappedSuperclass的类将不是一个完整的实体类,他将不会映射到数据库表,但是他的属性都将映射到其子类的数据库字段中。
标注为@MappedSuperclass的类不能再标注@Entity或@Table注解,也无需实现序列化接口。
但是如果一个标注为@MappedSuperclass的类继承了另外一个实体类或者另外一个同样标注了@MappedSuperclass的类的话,他将可以使用@AttributeOverride或@AttributeOverrides注解重定义其父类(无论是否是实体类)的属性映射到数据库表中的字段。
比如可以重定义字段名或长度等属性,使用@AttributeOverride中的子属性@Column进行具体的定义。

9150c4fa2566b3393adfc6d8080b4b8f.png

https://www.cwiki.us/display/HIBERNATE/questions/57938957

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值