﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-jiadong-随笔分类-HIBERNATE</title><link>http://www.blogjava.net/jiadong/category/25173.html</link><description /><language>zh-cn</language><lastBuildDate>Wed, 29 Aug 2007 14:00:48 GMT</lastBuildDate><pubDate>Wed, 29 Aug 2007 14:00:48 GMT</pubDate><ttl>60</ttl><item><title>关于Hibernate中的映射问题</title><link>http://www.blogjava.net/jiadong/archive/2007/08/27/139765.html</link><dc:creator>jiadong</dc:creator><author>jiadong</author><pubDate>Mon, 27 Aug 2007 02:10:00 GMT</pubDate><guid>http://www.blogjava.net/jiadong/archive/2007/08/27/139765.html</guid><wfw:comment>http://www.blogjava.net/jiadong/comments/139765.html</wfw:comment><comments>http://www.blogjava.net/jiadong/archive/2007/08/27/139765.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/jiadong/comments/commentRss/139765.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/jiadong/services/trackbacks/139765.html</trackback:ping><description><![CDATA[hibernate在解决数据持久化方面的确是很强大，在此给出数据库表中的MANY-TO-MANY在hibernate中是如何映射的.<br><br>其实呢多对多的关系映射，是在一对多的基础上进行的。<br>如果现在数据库中有两张表（经典的多对多：student-teacher）<br>student: studentid(primary key ),studentname<br>teacher: teacherid(primary key ),teachername<br>存放其关系的表：<font style="color: #000000;" color="#0000ff">stu_tea_relation</font>: studentid,teacherid<br><br>因为一对多的映射，几乎上都是通过Set来处理，所以多对多也是如此。首先生成POJO类，然后配置xml文件<br>其中的 Student.hbm.xml
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; font-size: 13px; width: 98%; background-color: #eeeeee;"><span style="color: #008080;">&nbsp;1</span><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top"><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">hibernate-mapping</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br></span><span style="color: #008080;">&nbsp;2</span><span style="color: #000000;"><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">class&nbsp;</span><span style="color: #ff0000;">name</span><span style="color: #0000ff;">="org.jia.Student"</span><span style="color: #ff0000;">&nbsp;table</span><span style="color: #0000ff;">="student"</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br></span><span style="color: #008080;">&nbsp;3</span><span style="color: #000000;"><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">id&nbsp;</span><span style="color: #ff0000;">name</span><span style="color: #0000ff;">="studentid"</span><span style="color: #ff0000;">&nbsp;type</span><span style="color: #0000ff;">="integer"</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br></span><span style="color: #008080;">&nbsp;4</span><span style="color: #000000;"><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">column&nbsp;</span><span style="color: #ff0000;">name</span><span style="color: #0000ff;">="studentid"</span><span style="color: #ff0000;">&nbsp;</span><span style="color: #0000ff;">/&gt;</span><span style="color: #000000;"><br></span><span style="color: #008080;">&nbsp;5</span><span style="color: #000000;"><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">generator&nbsp;</span><span style="color: #ff0000;">class</span><span style="color: #0000ff;">="native"</span><span style="color: #ff0000;">&nbsp;</span><span style="color: #0000ff;">/&gt;</span><span style="color: #000000;"><br></span><span style="color: #008080;">&nbsp;6</span><span style="color: #000000;"><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">id</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br></span><span style="color: #008080;">&nbsp;7</span><span style="color: #000000;"><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">property&nbsp;</span><span style="color: #ff0000;">name</span><span style="color: #0000ff;">="studentname"</span><span style="color: #ff0000;">&nbsp;type</span><span style="color: #0000ff;">="string"</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br></span><span style="color: #008080;">&nbsp;8</span><span style="color: #000000;"><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">column&nbsp;</span><span style="color: #ff0000;">name</span><span style="color: #0000ff;">="studentname"</span><span style="color: #ff0000;">&nbsp;not-null</span><span style="color: #0000ff;">="true"</span><span style="color: #ff0000;">&nbsp;</span><span style="color: #0000ff;">/&gt;</span><span style="color: #000000;"><br></span><span style="color: #008080;">&nbsp;9</span><span style="color: #000000;"><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">property</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br></span><span style="color: #008080;">10</span><span style="color: #000000;"><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">set&nbsp;</span><span style="color: #ff0000;">name</span><span style="color: #0000ff;">="teachers"</span><span style="color: #ff0000;">&nbsp;table</span><span style="color: #0000ff;">="stu_tea_relation"</span><span style="color: #ff0000;">&nbsp;inverse</span><span style="color: #0000ff;">="true"</span><span style="color: #ff0000;"><br></span><span style="color: #008080;">11</span><span style="color: #ff0000;"><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cascade</span><span style="color: #0000ff;">="all"</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br></span><span style="color: #008080;">12</span><span style="color: #000000;"><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">key&nbsp;</span><span style="color: #ff0000;">column</span><span style="color: #0000ff;">="studentid"</span><span style="color: #0000ff;">&gt;&lt;/</span><span style="color: #800000;">key</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br></span><span style="color: #008080;">13</span><span style="color: #000000;"><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">many-to-many&nbsp;</span><span style="color: #ff0000;">column</span><span style="color: #0000ff;">="teacherid"</span><span style="color: #ff0000;"><br></span><span style="color: #008080;">14</span><span style="color: #ff0000;"><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;class</span><span style="color: #0000ff;">="org.jia.Teacher"</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br></span><span style="color: #008080;">15</span><span style="color: #000000;"><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">many-to-many</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br></span><span style="color: #008080;">16</span><span style="color: #000000;"><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">set</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br></span><span style="color: #008080;">17</span><span style="color: #000000;"><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">class</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br></span><span style="color: #008080;">18</span><span style="color: #000000;"><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top"></span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">hibernate-mapping</span><span style="color: #0000ff;">&gt;</span></div>
//name="teacher"是指在Student.java中的那个set对象，以及相应的getter，stter方法的名字<br>//inverse是说明，是通过谁来管理谁，在此为true，说明是通过老师来选学生<br>&lt;set name="teachers" table="stu_tea_relation" inverse="true"&nbsp;&nbsp;&nbsp;&nbsp;cascade="all"&gt;<br>&nbsp;&nbsp;&nbsp;&lt;key column="studentid"&gt;&lt;/key&gt;<br>&nbsp;&nbsp;&nbsp;&lt;many-to-many column="teacherid"<br>&nbsp;&nbsp;&nbsp;&nbsp;class="org.jia.Teacher"&gt;<br>&nbsp;&nbsp;&nbsp;&lt;/many-to-many&gt;<br>&nbsp;&nbsp;&lt;/set&gt;<br>同样的Teacher.hbm.xml<br>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; font-size: 13px; width: 98%; background-color: #eeeeee;"><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top"><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">hibernate-mapping</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">class&nbsp;</span><span style="color: #ff0000;">name</span><span style="color: #0000ff;">="org.jia.Teacher"</span><span style="color: #ff0000;">&nbsp;table</span><span style="color: #0000ff;">="teacher"</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">id&nbsp;</span><span style="color: #ff0000;">name</span><span style="color: #0000ff;">="teacherid"</span><span style="color: #ff0000;">&nbsp;type</span><span style="color: #0000ff;">="integer"</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">column&nbsp;</span><span style="color: #ff0000;">name</span><span style="color: #0000ff;">="teacherid"</span><span style="color: #ff0000;">&nbsp;</span><span style="color: #0000ff;">/&gt;</span><span style="color: #000000;"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">generator&nbsp;</span><span style="color: #ff0000;">class</span><span style="color: #0000ff;">="native"</span><span style="color: #ff0000;">&nbsp;</span><span style="color: #0000ff;">/&gt;</span><span style="color: #000000;"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">id</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">property&nbsp;</span><span style="color: #ff0000;">name</span><span style="color: #0000ff;">="teachername"</span><span style="color: #ff0000;">&nbsp;type</span><span style="color: #0000ff;">="string"</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">column&nbsp;</span><span style="color: #ff0000;">name</span><span style="color: #0000ff;">="teachername"</span><span style="color: #ff0000;">&nbsp;not-null</span><span style="color: #0000ff;">="true"</span><span style="color: #ff0000;">&nbsp;</span><span style="color: #0000ff;">/&gt;</span><span style="color: #000000;"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">property</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">set&nbsp;</span><span style="color: #ff0000;">name</span><span style="color: #0000ff;">="students"</span><span style="color: #ff0000;">&nbsp;table</span><span style="color: #0000ff;">="stu_tea_relation"</span><span style="color: #ff0000;">&nbsp;inverse</span><span style="color: #0000ff;">="false"</span><span style="color: #ff0000;"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cascade</span><span style="color: #0000ff;">="all"</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">key&nbsp;</span><span style="color: #ff0000;">column</span><span style="color: #0000ff;">="teacherid"</span><span style="color: #0000ff;">&gt;&lt;/</span><span style="color: #800000;">key</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">many-to-many&nbsp;</span><span style="color: #ff0000;">column</span><span style="color: #0000ff;">="studentid"</span><span style="color: #ff0000;"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;class</span><span style="color: #0000ff;">="org.jia.Student"</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">many-to-many</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">set</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">class</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top"></span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">hibernate-mapping</span><span style="color: #0000ff;">&gt;</span></div>
<br><img src ="http://www.blogjava.net/jiadong/aggbug/139765.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/jiadong/" target="_blank">jiadong</a> 2007-08-27 10:10 <a href="http://www.blogjava.net/jiadong/archive/2007/08/27/139765.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>