您的位置:首页 > 其它

一本正经教你配置Hibernate框架下的.hbm.xml文件的映射关系

2017-10-28 14:08 465 查看
关于属性之间的相互映射(一对多,多对一,多对多)的解决

前提是所有的类和配置文件都在一个包下(一般为domain包)


class Subject{   class Teacher{    class Student{  


...          ...         ...


Teacher tea;    Subject sub;      Teacher tea; 


...         Student stu ;


           ...            ...


}           }           } 


[b][b]1.一对多:(一门学科对应多名教师)[/b]
[/b]

Subject.hbm.xml:

...

<set name = "该文件名所对应类中“多”的属性"(此处即为tea)>

<key column="外键名(一般为属性+Id)" />


<one-to-many class="name中的属性对应的类名(此处即为Teacher)" />


</set>

...

2.多对一:(多名教师对应一门学科)

Teacher.hbm.xml

...


<many-to-one name = "[b]该文件名所对应类中“多”的属性(此处即为sub)" class="name中的属性对应的类名(此处即为Subject)"
column="外键名(一般为属性+Id)" />
[/b]

...

注意:蓝色字的地方的两个名字必须要完全一致。


3.多对多:(多名教师与多名学生对应)(有一点麻烦)

Student.hbm.xml

...

<set name="类Student中所对应的属性(即为tea)"  table="中间表(table_tea_stu)">

<key column="[b][b]外键名(一般为属性+Id)[/b]" />
[/b]

<many-to-many class="类Student中所对应的属性所对应的类(即为Teacher)"

column="[b][b][b]外键名(一般为属性+Id)[/b][/b]"
/>
[/b]

</set>


...


Teacher.hbm.xml

...

<set name="[b]类Teacher中所对应的属性(即为stu)"table="中间表(table_tea_stu)">[/b]

<key column="[b][b][b][b][b][b][b]外键名(一般为属性+Id)[/b][/b][/b][/b][/b][/b]"
/>
[/b]

<many-to-many class="类Techer中所对应的属性所对应的类(即为Student)"

column="[b][b][b][b]外键名(一般为属性+Id)[/b][/b][/b]"
/>[/b]
</set>


...

在多对多的情况下产生两组外键,两种颜色的外键名要一一对应完全一致才能确保映射成功。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  映射文件 Hibernate
相关文章推荐