首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

hibernate-关系照射

2013-07-04 
hibernate---关系映射关系映射n多对一(Employee - Department) n一对多(Department-Employee)n一对一(Pers

hibernate---关系映射

关系映射

n多对一(Employee - Department) n一对多(Department-Employee)n一对一(Person - IdCard) n多对多(teacher - student) ncascade(Employee – Department)??

多对一(Employee - Department)

?

?Employee映射文件

?<many-to-one name=”depart” column=”depart_id”/>?

?

?


hibernate-关系照射
?

?

?

一对多(Department-Employee)

?

?

Department映射文件添加

?

<set name=”集合对象属性名”>

?

? <key column=”外键名”/>

?

? <one-to-many class=”集合放入的类名”/>

?

</set>?

?

?

?

?

    class Department{private Integer id;private String name;private Set<Employee> emps}

?

?

一对一(Person - IdCard)

?

1)基于主键的one-to-one(IdCard的映射文件)

?

<id name=”id”>

?

? <generator class=”foreign”><param name=”property”>person</param></generator>

?

<id>

?

<one-to-one name=” person” constrained=”true”/>

?

[没有constraned true将不会生成外键约束]

?

Person映射文件: <one-to-one name=“idCard” />

?

?

class Person{private Integer id;private String name;private IdCard idCard}class IdCard{private Integer id;private java.util.Date useful_life;private Person person}

?

?

?

2)基于外健的one-to-one,可以描述为多对一,加unique=“true”约束,

?

IdCard的映射文件 中:

?

<many-to-one name=”person” column=”person_id” unique=”true” not-null=”true”/>

?

?<!-唯一的多对一,其实就便成了一对一了就会在Idcard表生成外键-->

?

? Person映射文件不变化:

?

?

?

?

多对多(student - course)

?

?

?

在操作和性能方面都不太理想,所以多对多的映射使用较少,实际使

?

用中最好转换成一对多的对象模型;Hibernate会为我们创建中间

?

关联表,转换成两个一对多。

?

<set name=“xxx" table=“xxx">

?

? <key column=“xxx"/>

?

? <many-to-many class=“xxx" column=“xxx"/>

?

</set>?

?

?

在操作和性能方面都不太理想,所以多对多的映射使用较少,实际使

用中最好转换成一对多的对象模型;Hibernate会为我们创建中间

关联表,转换成两个一对多。


hibernate-关系照射
?

?

?

?



?

?

?

?

?

?

?

热点排行