第八章 实体(消息)---重点
继承映射:
1. 所有继承结构一张表
@Entity(name="")--name的作用:(1)EQL查询的表 (2)生成的表名
@Inheritance(strategy=InheritanceType.SINGLE_TABLE)
@DiscriminatorColumn(name="DISC",discriminatorType=DiscriminatorType.STRING)
--区分列的名称和类型
@DiscriminatorValue("")
每个子类
@Entity(name="")
@DiscriminatorValue("")
优点:A 只需要单张表,数据库操作效率高
B 很好的支持多态查询
缺点:A 表中的属性不能设置为非空限制
B 类比较多时,字段较多,不易维护
2. 每个子类一张表
@Inheritance(strategy=InheritanceType.JOINED)
不需要定义区分列,有默认的
优点:支持多态(查存,更新,删除)
缺点:连接操作会影响性能
3. 一个具体类一个表(规范不支持)
缺点:A 规范不支持
B 不支持多态
继承关系的其他方式
实体类可以继承非实体类,但非实体类不会映射到表,非实体类没有数据库中的表与之对应
@MappedSuperclass---(一般不用)
把非实体类中的属性映射到实体类的表中,非实体类没有数据库中的表与之对应
基数映射:
1. 一对一:@OneToOne(cascade=CascadeType.PERSIST)---不加没有级联操作
本内容试读结束,登录后可阅读更多
下载后可阅读完整内容,剩余2页未读,立即下载