??xml version="1.0" encoding="utf-8" standalone="yes"?>超碰成人在线免费,99精品国产高清一区二区麻豆,国产导航在线http://www.aygfsteel.com/alwayscy/category/20895.htmlzh-cnThu, 16 Jul 2009 16:42:48 GMTThu, 16 Jul 2009 16:42:48 GMT60用flush+clear加速SPRINGQJPA+HIBERNATE的批量插入操?/title><link>http://www.aygfsteel.com/alwayscy/archive/2009/07/16/287026.html</link><dc:creator>我爱?jng)_</dc:creator><author>我爱?jng)_</author><pubDate>Thu, 16 Jul 2009 13:20:00 GMT</pubDate><guid>http://www.aygfsteel.com/alwayscy/archive/2009/07/16/287026.html</guid><wfw:comment>http://www.aygfsteel.com/alwayscy/comments/287026.html</wfw:comment><comments>http://www.aygfsteel.com/alwayscy/archive/2009/07/16/287026.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/alwayscy/comments/commentRss/287026.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/alwayscy/services/trackbacks/287026.html</trackback:ping><description><![CDATA[<a >q里</a>有个帖子HIBERNATE在批量插入时性能下降Q以及一些解x式?br /> <br /> 其核心在于批量插入时Q积攒一定量后就写库Qƈ清除SESSION里的W一U缓存,以免后箋插入操作受缓存查找而媄响效率:<br /> <br /> <div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> --><span style="color: #0000ff;">if</span><span style="color: #000000;"> ( j </span><span style="color: #000000;">%</span><span style="color: #000000;"> batchNum2 </span><span style="color: #000000;">==</span><span style="color: #000000;"> </span><span style="color: #000000;">0</span><span style="color: #000000;"> ) {</span><span style="color: #008000;">//</span><span style="color: #008000;">执行物理扚w插入</span><span style="color: #008000;"><br /> </span><span style="color: #000000;">                                   session.flush();<br />                          session.clear();            <br /> <br /> }</span></div> <br /> <br /> ZJPA的事务操作,SESSION不可见,此时Q需要直接调用EntityManager的flush和clear?br /> 但EntityManager也是被封装入JpaDaoSupportQ实际的EntityManager对象也不Ҏ(gu)取得?br /> 此时可以用其JpaTemplate成员的executeҎ(gu)来实现这两个操作Q?br /> <br /> <div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> --><span style="color: #000000;">        getJpaTemplate().execute(</span><span style="color: #0000ff;">new</span><span style="color: #000000;"> JpaCallback() {<br />             </span><span style="color: #0000ff;">public</span><span style="color: #000000;"> Object doInJpa(EntityManager em) </span><span style="color: #0000ff;">throws</span><span style="color: #000000;"> PersistenceException {<br />                 em.flush();<br />                 em.clear();<br />                 </span><span style="color: #0000ff;">return</span><span style="color: #000000;"> </span><span style="color: #0000ff;">null</span><span style="color: #000000;">;<br />             }<br />         }, </span><span style="color: #0000ff;">true</span><span style="color: #000000;">);</span></div> <br /> 在我q里试l果Q?br /> 没有定期调用以上Ҏ(gu)Ӟ插入50个记录要2U,q且随着记录增多Q时间越来越ѝ?br /> 每插?0个调用以上方法后Q插?0个记录小?00毫秒Q且不随记录个数U性增ѝ?br /> <img src ="http://www.aygfsteel.com/alwayscy/aggbug/287026.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/alwayscy/" target="_blank">我爱?jng)_</a> 2009-07-16 21:20 <a href="http://www.aygfsteel.com/alwayscy/archive/2009/07/16/287026.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ManyToMany关系中,使用非主键联合的Ҏ(gu)http://www.aygfsteel.com/alwayscy/archive/2008/10/27/236920.html我爱?jng)_我爱?jng)_Mon, 27 Oct 2008 09:30:00 GMThttp://www.aygfsteel.com/alwayscy/archive/2008/10/27/236920.htmlhttp://www.aygfsteel.com/alwayscy/comments/236920.htmlhttp://www.aygfsteel.com/alwayscy/archive/2008/10/27/236920.html#Feedback0http://www.aygfsteel.com/alwayscy/comments/commentRss/236920.htmlhttp://www.aygfsteel.com/alwayscy/services/trackbacks/236920.html阅读全文

我爱?jng)_ 2008-10-27 17:30 发表评论
]]>
PowerDesigner中设|Hibernate一对多Q多对一属?/title><link>http://www.aygfsteel.com/alwayscy/archive/2007/04/15/110791.html</link><dc:creator>我爱?jng)_</dc:creator><author>我爱?jng)_</author><pubDate>Sun, 15 Apr 2007 09:17:00 GMT</pubDate><guid>http://www.aygfsteel.com/alwayscy/archive/2007/04/15/110791.html</guid><wfw:comment>http://www.aygfsteel.com/alwayscy/comments/110791.html</wfw:comment><comments>http://www.aygfsteel.com/alwayscy/archive/2007/04/15/110791.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/alwayscy/comments/commentRss/110791.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/alwayscy/services/trackbacks/110791.html</trackback:ping><description><![CDATA[例如Q表CZ机HOST含有多个盘DISK关系Q?br><br>在PD的OOM中双M条关p连U,讄NavigateQ这h会在各自hbm.xml中生成many-to-one及one-to-many关系?br><img height=768 src="http://www.aygfsteel.com/images/blogjava_net/alwayscy/pd1.JPG" width=1024 border=0><br><br><br>另外Q根?#8220;附文”的效率说明还需要设|:由多方DISKl护关系Qƈ且当HOST更新Ӟ也要更新DISK?br><img height=768 src="http://www.aygfsteel.com/images/blogjava_net/alwayscy/pd2.JPG" width=1024 border=0><br><br><br>生成的HBM.XML如下Q?br>HOST的:<br>      <joined-subclass name="Host" table="host" dynamic-update="false" dynamic-insert="false" select-before-update="false" lazy="true" abstract="false"> <br>       <key on-delete="noaction" unique="true"><br>         <column name="dev_id" sql-type="int" not-null="true" length="0"/><br>       </key><br>       <array name="nic" optimistic-lock="true"><br>        <key on-delete="noaction" unique="true"><br>         <column name="dev_id" sql-type="int" not-null="false" length="0"/><br>        </key><br>        <list-index column="IndexColumnB"/><br>        <one-to-many class="eb.nms.db.Nic"/><br>       </array><br>       <set name="disk" outer-join="false"<span style="COLOR: #993300"> inverse="true"</span> lazy="true" optimistic-lock="true" <span style="COLOR: #993300">cascade="save-update</span>"><br>        <key on-delete="noaction" unique="true"><br>         <column name="dev_id" sql-type="int" not-null="false" length="0"/><br>        </key><br>        <one-to-many class="eb.nms.db.Disk"/><br>       </set><br>      </joined-subclass><br><br><br>DISK的:<br>   <class name="Disk" table="disk" mutable="true" lazy="true" abstract="false"><br>      <id name="diskId"><br>         <column name="disk_id" sql-type="int" not-null="true"/><br>         <generator class="native">   <br>         </generator><br>      </id><br>      <property name="diskName" insert="true" update="true" optimistic-lock="true"><br>         <column name="disk_name" sql-type="varchar(254)" length="254"/><br>      </property><br>      <many-to-one name="host" class="Host" outer-join="false" update="true" insert="true"><br>       <column name="dev_id" sql-type="int" not-null="false" length="0"/><br>      </many-to-one><br>   </class><br><br><br>附文Q?br>  <div> <p align=left><strong><span><a ><span>Hibernate Gossip: </span><span><span>雙向關聯Q?/span></span><span>inverse </span><span><span>的意)</span></span></a></span></strong></p> </div> <table cellSpacing=0 cellPadding=0 width=691 border=0> <tbody> <tr> <td vAlign=top width=691> <p align=left><span>?/span><span> <span><a ><strong><span><span>多對一</span></span></strong></a> </span></span><span>?/span><span><a ><strong><span><span>一多</span></span></strong></a> </span><span>中都是單向關聯,也就是其中一斚w聯到另一方,而另一方不知道自己被關聯?/span><span><br><br></span><span>如果讓雙斚w意識到另一方的存在Q這就形成了雙向關聯,在多一、一多的例子可以改寫一下,重新a計</span><span>User</span><span>別如下Q?/span><span> </span></p> <ul type=disc> <li><span>User.java </span></li> </ul> <div> <p align=left><span>package onlyfun.caterpillar;<br><br>public class User {<br><span>    </span>private Integer id;<br><span>    </span>private String name;<br><span>    </span><strong>private Room room;</strong><br> <br><span>    </span>public User() {}<br><br><span>    </span>public Integer getId() {<br><span>        </span>return id;<br><span>    </span>}<br><br><span>    </span>public void setId(Integer id) {<br><span>        </span>this.id = id;<br><span>    </span>}<br><br><span>    </span>public String getName() {<br><span>        </span>return name;<br><span>    </span>}<br><br><span>    </span>public void setName(String name) {<br><span>        </span>this.name = name;<br><span>    </span>}<br><br><span>    </span>public Room getRoom() {<br><span>        </span>return room;<br><span>    </span>}<br><br><span>    </span>public void setRoom(Room room) {<br><span>        </span>this.room = room;<br><span>    </span>}<br>}</span></p> </div> <p align=left><span><br>Room</span><span>別如下Q?/span></p> <ul type=disc> <li><span>Room.java </span></li> </ul> <div> <p align=left><span>package onlyfun.caterpillar; <br><br>import java.util.Set;<br><br>public class Room { <br><span>    </span>private Integer id; <br><span>    </span>private String address;<br><span>    </span><strong>private Set users;</strong><br> <br><span>    </span>public Room() {}<br> <br><span>    </span>public Integer getId() { <br><span>        </span>return id; <br><span>    </span>} <br><br><span>    </span>public void setId(Integer id) { <br><span>        </span>this.id = id; <br><span>    </span>} <br> <br><span>    </span>public String getAddress() { <br><span>        </span>return address; <br><span>    </span>}<br> <br><span>    </span>public void setAddress(String address) { <br><span>        </span>this.address = address; <br><span>    </span>}<br><br><span>    </span>public Set getUsers() {<br><span>        </span>return users;<br><span>    </span>}<br><br><span>    </span>public void setUsers(Set users) {<br><span>        </span>this.users = users;<br><span>    </span>} <br> <br><span>    </span>public void addUser(User user) {<br><span>        </span>users.add(user); <br><span>    </span>}<br> <br><span>    </span>public void removeUser(User user) {<br><span>        </span>users.remove(user);<br><span>    </span>}<br>}</span></p> </div> <p align=left><span><br></span><span>如此Q?/span><span>User</span><span>實例可參考至</span><span>Room</span><span>實例而維持多一關係Q?/span><span>Room</span><span>實例a得</span><span>User</span><span>實例而維持一多關係?/span><span><br><br></span><span>在映文件方面,可以如下撰寫Q?/span><span> </span></p> <ul type=disc> <li><span>User.hbm.xml </span></li> </ul> <div> <p align=left><span><?xml version="1.0" encoding="utf-8"?> <br><!DOCTYPE hibernate-mapping <br> PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" <br> "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> <br><br><hibernate-mapping> <br><br><span>    </span><class name="onlyfun.caterpillar.User" table="user"> <br><span>        </span><id name="id" column="id" type="java.lang.Integer"> <br><span>            </span><generator class="native"/> <br><span>        </span></id> <br><br><span>        </span><property name="name" column="name" type="java.lang.String"/> <br> <br><span>        </span><strong><many-to-one name="room" <br></strong><span>                     </span><strong>column="room_id" <br></strong><span>                    </span><strong> class="onlyfun.caterpillar.Room"<br></strong><span>                    </span><strong> cascade="save-update"<br></strong><span>                    </span><strong> outer-join="true"/> </strong><br><span>    </span></class> <br><br></hibernate-mapping></span></p> </div> <p align=left> </p> <ul type=disc> <li><span>Room.hbm.xml </span></li> </ul> <div> <p align=left><span><?xml version="1.0" encoding="utf-8"?> <br><!DOCTYPE hibernate-mapping <br> PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" <br> "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> <br><br><hibernate-mapping> <br><br><span>    </span><class name="onlyfun.caterpillar.Room" table="room"> <br><span>    </span><span>    </span><id name="id" column="id"> <br><span>            </span><generator class="native"/> <br><span>        </span></id> <br><br><span>        </span><property name="address" <br><span>                  </span>column="address" <br><span>                  </span>type="java.lang.String"/> <br> <br><span>        </span><strong><set name="users" table="user" cascade="save-update"><br></strong><span>            </span><strong><key column="room_id"/><br></strong><span>            </span><strong><one-to-many class="onlyfun.caterpillar.User"/><br></strong><span>        </span><strong></set></strong><br><span>    </span></class> <br><br></hibernate-mapping></span></p> </div> <p align=left><span><br></span><span>映射文g雙方都設定了</span><span>cascade</span><span>?/span><span>save-update</span><span>Q所以?zhn)可以用多一的方式來E持關聯Q?/span></p> <p align=left><strong><span>User user1 = new User();<br>user1.setName("bush"); <br>        <br>User user2 = new User(); <br>user2.setName("caterpillar"); <br><br>Room room1 = new Room(); <br>room1.setAddress("NTU-M8-419");<br><br>user1.setRoom(room1);<br>user2.setRoom(room1);<br>        <br>Session session = sessionFactory.openSession();<br>Transaction tx = session.beginTransaction();<br>        <br>session.save(user1);<br>session.save(user2);<br></span></strong><span><br><strong>tx.commit();<br>session.close();</strong></span></p> <p align=left><span><br></span><span>或是反過來由一多的方式來E持關聯Q?/span></p> <p align=left><strong><span>User user1 = new User();<br>user1.setName("bush"); <br>        <br>User user2 = new User(); <br>user2.setName("caterpillar"); <br><br>Room room1 = new Room(); <br>room1.setUsers(new HashSet());<br>room1.setAddress("NTU-M8-419");<br>room1.addUser(user1);<br>room1.addUser(user2);<br>        <br>Session session = sessionFactory.openSession();<br>Transaction tx = session.beginTransaction();<br>        <br>session.save(room1); <br><br>tx.commit();<br>session.close();</span></strong></p> <p align=left><span><br></span><span>這邊有個效率議可以探a,上面的程式片D?/span><span>Hibernate</span><span>用以下的</span><span>SQL</span><span>進行儲存Q?/span></p> <p align=left><strong><span>Hibernate: insert into room (address) values (?)<br>Hibernate: insert into user (name, room_id) values (?, ?)<br>Hibernate: insert into user (name, room_id) values (?, ?)<br>Hibernate: update user set room_id=? where id=?<br>Hibernate: update user set room_id=? where id=?</span></strong></p> <p align=left><span><br></span><span>上面的程式寫法表C關聯由</span><span>Room</span><span>單方面維持,而主控方也是</span><span>Room</span><span>Q?/span><span>User</span><span>不知?/span><span>Room</span><span>?/span><span>room_id</span><span>是多,所以必須分別儲?/span><span>Room</span><span>?/span><span> User</span><span>之後Q再更新</span><span>user</span><span>?/span><span>room_id</span><span>?/span><span><br><br></span><span>在一多、多一形成雙向關聯的情況下Q可以將關聯E持的控制權交多的一方,這樣會比較有效率Q理׃難理解,像是在公司中,老闆要記住多個員工的姓名快,還是每一個員工都a得老闆的姓名快?/span><span><br><br></span><span>所以在一多、多一形成雙向關聯的情況下Q可以在「一」的一方設定控制權反轉Q也是當儲存「一」的一Ҏ(gu)Q將關聯E持的控制權交「多」的一方,以上面的例子來說Q可以設?/span><span>Room.hbm.xml</span><span>如下Q?/span><span> </span></p> <ul type=disc> <li><span>Room.hbm.xml </span></li> </ul> <div> <p align=left><span><?xml version="1.0" encoding="utf-8"?> <br><!DOCTYPE hibernate-mapping <br> PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" <br> "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> <br><br><hibernate-mapping> <br><br><span>    </span><class name="onlyfun.caterpillar.Room" table="room"> <br><span>        </span><id name="id" column="id"> <br><span>            </span><generator class="native"/> <br><span>        </span></id> <br><br><span>    </span><span>    </span><property name="address" <br><span>                  </span>column="address" <br><span>                  </span>type="java.lang.String"/> <br> <br><span>        </span><set name="users" table="user" cascade="save-update" <strong>inverse="true"</strong>><br><span>            </span><key column="room_id"/><br><span>            </span><one-to-many class="onlyfun.caterpillar.User"/><br><span>        </span></set><br><span>    </span></class> <br><br></hibernate-mapping></span></p> </div> <p align=left><span><br></span><span>由於關聯的控制權交「多」的一方了Q所以直接儲存「一」方前,「多」的一方必須意識到「一」的存在Q所以程式片D必須改為如下:</span></p> <p align=left><strong><span>User user1 = new User();<br>user1.setName("bush"); <br>        <br>User user2 = new User(); <br>user2.setName("caterpillar"); <br><br>Room room1 = new Room(); <br>room1.setUsers(new HashSet());<br>room1.setAddress("NTU-M8-419");<br>room1.addUser(user1);<br>room1.addUser(user2);<br><br>// </span></strong><strong><span>多方必須意識到單方的存在</span></strong><strong><span><br>user1.setRoom(room1);</span></strong><span><br><strong>user2.setRoom(room1);</strong><br><strong>        <br>Session session = sessionFactory.openSession();<br>Transaction tx = session.beginTransaction();<br>        <br>session.save(room1); <br><br>tx.commit();<br>session.close();</strong></span></p> <p align=left><span><br></span><span>上面的程式片D?/span><span>Hibernate</span><span>用以下的</span><span>SQL</span><span>Q?/span></p> <p align=left><strong><span>Hibernate: insert into room (address) values (?)<br>Hibernate: insert into user (name, room_id) values (?, ?)<br>Hibernate: insert into user (name, room_id) values (?, ?)</span></strong></p> <p align=left><span><br></span><span>如果控制Ɗ交i另一方了Q而另一Ҏ(gu)有意識到方的存在的話會如何Q試著將上面的程式片D中</span><span>user1.setRoom(room1);</span><span>?/span><span> user2.setRoom(room1);</span><span>UdQ執行之後,(zhn)會發現資料庫中</span><span>room_id</span><span>會出?/span><span>null</span><span>|這種i果好比在</span><span> <span><a ><strong><span><span>多對一</span></span></strong></a> </span></span><span>中,(zhn)沒有分配</span><span>User</span><span>一?/span><span>Room</span><span>Q理所當然的,</span><span>room_id</span><span>會出?/span><span>null</span><span>?/span></p> </td> </tr> </tbody> </table> <p> </p> <img src ="http://www.aygfsteel.com/alwayscy/aggbug/110791.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/alwayscy/" target="_blank">我爱?jng)_</a> 2007-04-15 17:17 <a href="http://www.aygfsteel.com/alwayscy/archive/2007/04/15/110791.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Hibernatel承映射讲解http://www.aygfsteel.com/alwayscy/archive/2007/04/15/110776.html我爱?jng)_我爱?jng)_Sun, 15 Apr 2007 07:06:00 GMThttp://www.aygfsteel.com/alwayscy/archive/2007/04/15/110776.htmlhttp://www.aygfsteel.com/alwayscy/comments/110776.htmlhttp://www.aygfsteel.com/alwayscy/archive/2007/04/15/110776.html#Feedback0http://www.aygfsteel.com/alwayscy/comments/commentRss/110776.htmlhttp://www.aygfsteel.com/alwayscy/services/trackbacks/110776.html 

http://macrochen.blogdriver.com/macrochen/687759.html

我爱?jng)_ 2007-04-15 15:06 发表评论
]]>
用PowerDesigner生成Hibernate映射文g的步?/title><link>http://www.aygfsteel.com/alwayscy/archive/2007/04/07/109089.html</link><dc:creator>我爱?jng)_</dc:creator><author>我爱?jng)_</author><pubDate>Sat, 07 Apr 2007 07:25:00 GMT</pubDate><guid>http://www.aygfsteel.com/alwayscy/archive/2007/04/07/109089.html</guid><wfw:comment>http://www.aygfsteel.com/alwayscy/comments/109089.html</wfw:comment><comments>http://www.aygfsteel.com/alwayscy/archive/2007/04/07/109089.html#Feedback</comments><slash:comments>9</slash:comments><wfw:commentRss>http://www.aygfsteel.com/alwayscy/comments/commentRss/109089.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/alwayscy/services/trackbacks/109089.html</trackback:ping><description><![CDATA[<p><font style="BACKGROUND-COLOR: #d8d0c8">执行QNew->Conceptual Data Model<br>~译完概忉|型后Q再通过CDM生成PDM和OOMQ注意要先生成OOMQ再生成PDM?br>?U模型都具备Ӟ生成JAVA CODE时才会有*.hbm.xml文gQ?br><br>执行QTools->Generate Object-Oriented Model<br>在对话框中,选择DetailQ勾选O/R MappingQ点击Enable TransformationsQ在多出来的选项卡Extended Model Definitions中的O/R Mapping中选择Hibernate?br><br>执行QTools->Generate Physical Data Model<br>在对话框中,选择DetailQ勾选O/R MappingQ点击Enable TransformationsQ在多出来的选项卡Extended Model Definitions中的O/R Mapping中选择Hibernate?br><br>再执行:Language->Generate Java Code<br></font></p> ׃看见生成的JAVA代码和映HBM.XML文g<br><br>q里只是刚刚摸烦的一些步骤,如果有实际用q,或者有详细资料的XDJMQ请回复出来׃n下。多谢?br>PD的帮助让人摸不着头脑?br><br>q是最后结果:<br><br><img height=768 alt="" src="http://www.aygfsteel.com/images/blogjava_net/alwayscy/1.JPG" width=1024 border=0> <img src ="http://www.aygfsteel.com/alwayscy/aggbug/109089.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/alwayscy/" target="_blank">我爱?jng)_</a> 2007-04-07 15:25 <a href="http://www.aygfsteel.com/alwayscy/archive/2007/04/07/109089.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>inverse和cascadehttp://www.aygfsteel.com/alwayscy/archive/2007/03/13/103628.html我爱?jng)_我爱?jng)_Tue, 13 Mar 2007 13:17:00 GMThttp://www.aygfsteel.com/alwayscy/archive/2007/03/13/103628.htmlhttp://www.aygfsteel.com/alwayscy/comments/103628.htmlhttp://www.aygfsteel.com/alwayscy/archive/2007/03/13/103628.html#Feedback0http://www.aygfsteel.com/alwayscy/comments/commentRss/103628.htmlhttp://www.aygfsteel.com/alwayscy/services/trackbacks/103628.htmlinverseQ表CZ个表的关pȝ谁维护。gؓfalse的一方将l护q种关系。如下面多对多关pMQ由HOST来维护它们之间的关系表hostalarmrule?br />
cascadeQ表C更新本表时Q是否附带更C其相关的其它表。如下面Q更新HOST表,׃gؓsave-updateQ也会将rules增加或者更新到ALARMRULE表;但,删除HOSTӞ不会删除ALARMRULE表中数据。除非,其gؓall?br />
    <class name="db.Host" table="host" catalog="rw">
        <set name="rules" inverse="false" table="hostalarmrule" cascade="save-update">
            <key column="host_id"/>
            <many-to-many class="db.Alarmrule" column="alarmrule_id"/>
        </set>               
    </class>

    <class name="db.Alarmrule" table="alarmrule" catalog="rw">
      <set name="hosts" table="hostalarmrule" inverse="true">
            <key column="alarmrule_id"/>
            <many-to-many class="db.Host" column="host_id"/>
        </set>
    </class>



我爱?jng)_ 2007-03-13 21:17 发表评论
]]>
վ֩ģ壺 | ɳƺ| ƽ| | ɽ| | | | Ĭ| Զ| | | | | | | | | Ϫ| | Է| üɽ| | ɽ| ɽ| | | | ̩| ̶| | | | | ݳ| | | ԰| ȷ| Ͽ| |