hibernate-继承映射-15(不太重要)
来源:互联网 发布:网络空间用什么来描绘 编辑:程序博客网 时间:2024/05/17 01:39
三种方式(根据具体情况看,第一种和第三种稍多,第二种较少):
1. sigleTable(一张表)
2. tablePerClass(一个类一张表)
3. joined(一个主表存id和共有的字段等,其他的表存id和各子类特定的字段)
Peson、Student、Teacher的继承映射
第一种
@Entity@Inheritance(strategy = InheritanceType.SINGLE_TABLE)@DiscriminatorColumn(name="discriminator",discriminatorType = DiscriminatorType.STRING)@DiscriminatorValue("person")public class Person { private int id; private String name; @Id @GeneratedValue public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; }}
@Entity@DiscriminatorValue("student")public class Student extends Person { private int score; public int getScore() { return score; } public void setScore(int score) { this.score = score; }}
@Entity@DiscriminatorValue("teacher")public class Teacher extends Person { private String title; public String getTitle() { return title; } public void setTitle(String title) { this.title = title; }}
第二种(每个类一张表,且每张表的id不能重复(对mysql来说,主键生成策略就只能设成table))
第二种用起来也比较麻烦
第三种
比较方便,但多态load的时候要每张表查再union,和第二种差不多
父类中,写共有的字段和id
子类中,写自己扩展的字段和id,字表的id参考父类id
在父类中,写annotation即可
@Inheritance(strategy = InheritanceType.JOINED)
阅读全文
0 0
- hibernate-继承映射-15(不太重要)
- hibernate-14-集合映射(不太重要)
- Hinbernate继承映射为4张表注解版【不太理解】(二十一)
- 【Hibernate】(九)继承映射
- Hibernate(七):继承映射
- Hibernate映射详解(六)--继承映射
- Hibernate(六)Hibernate继承关系映射
- Hibernate旅程(六)Hibernate映射--继承映射
- Hibernate高级映射 --- 继承映射
- Hibernate高级映射--继承映射
- Hibernate高级映射-继承映射
- Hibernate映射解析---继承映射
- Hibernate映射解析---继承映射
- Hibernate映射解析---继承映射
- Hibernate(七)——继承映射
- hibernate的继承关系映射(一)
- Hibernate(十)继承结构映射
- Hibernate(七)——继承映射
- 乘积最大
- 2017的OI之路的梦想
- Conway's law
- netty4 UDP的使用
- 二叉搜索树
- hibernate-继承映射-15(不太重要)
- 你需要尝试的25个Android第三方库(现在开始还不迟)
- python在pandas.DataFrame添加一行
- cas server的使用
- [LeetCode] Decode Ways
- LintCode-两数组的交 II
- Android Studio JNI学习之(2)-JAVA与原生代码通信
- linux虚拟机——网络模式
- Git正常pull失败,无法正常push到远程端