1.多对多的Java表达
1.使用集合对象表达多对多对象
推荐使用Set
public class EmployeeModel {
private Set<BehaveModel> behaves=null;
}
public class BehaveModel {
private Set<EmployeeModel> employees=null;
}
2.多对多的DB表达
通过关联表,字段分别来自关联的表的主键。
每个字段都是外键,2个字段联合作主键。
– 员工爱好关联表
create table oa_employeebehave
(
EMPID varchar(20) references OA_Employee(EMPID),
BNO int(10) references oa_Behave(BNO),
primary key (EMPID,BNO)
);
3.多对多的Hibernate映射
1.XML方式:
<!-- 多对多 -->
<set name="behaves" table="oa_employeebehave">
<key column="EMPID" />
<many-to-many class="BehaveModel" column="BNO" />
</set>
<!-- 多对多 -->
<set name="employees" table="oa_employeebehave">
<key column="BNO" />
<many-to-many class="EmployeeModel" column="EMPID" />
</set>
- Java Annotation方式实现多对多映射
@ManyToMany
@JoinTable(name="oa_employeebehave",
joinColumns =@JoinColumn(name="EMPID"),
inverseJoinColumns=@JoinColumn(name="BNO")
)
private Set<BehaveModel> behaves=null;
4.一对一的Java表达
class A {
private B b=null;
}
class B {
private A a=null;
}
5.一对一的数据库表达
(1)PK做FK。
(2) 专门FK指向PK,FK要求唯一性。
6.一对一的Hibernate映射
(1)XML方式映射语法
(2)Java注释方式映射语法
根据老师课堂笔记整理