一、集合映射(不太重要)
1 项目名称:hibernate_1800_Collections_Mapping
3 List (与Set差不多多个@OrderBy)
a) @OrderBy
二、继承映射(不太重要)
a) 一张总表SINGLE_TABLE
i. hibernate_1900_lnheritence_Mapping_Single_Table
b) 每个类分别一张表TABLE_PER_CLASS
i. hibernate_2000_lnheritence_Mapping_Table_Per_Class
c) 每个子类一张表jOINED
i.hibernate_2100_lnheritence_Mapping_JOINED
父类上加注解@Inheritance(strategy=InheritanceType.JOINED)
@Inheritance(strategy=InheritanceType.JOINED)
public class Person {... ...}
1 学生课程、分数的设计(重要)
a) 使用联合主键@Embeddedld
i.实现Serializable接口
b) 不使用联合主键(视频中实际例子采用此类方法)
项目hibernate_2300_Stu_Course_Score
a) 实体类(表)
b) 导航(编程方便)
c) 确定了编程方式
3 树状结构的设计(至关重要)
a)在同—个类中使用One2Many和Many20ne
关系模型(Tree)
Tree(int id,String name,Tree parent,List children)多
privateList<Tree> children = new ArrayList<Tree>();
@Id
@GeneratedValue
public int getId(){
return id;
}
@ManyToOne
@JoinColumn(name="parent_id")
public Tree getParent(){
return parent;
}
//fetch=FetchType.EAGER可省略即为@OneToMany的默认值fetch=FetchType.LAZY
//若树形较小可使用EAGER 一次全部载入内存
//若为LAZY则查询树形时不会一次全部载入内存(适用于较大的树形),会每取一个叶子节点就select
一次
@OneToMany(mappedBy="parent",
cascade={CascadeType.ALL},
fetch=FetchType.EAGER )
public List<Tree> getChildren() {
return children;
}