﻿<?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-心梦帆影Java技术博客-随笔分类-Hibernate</title><link>http://www.blogjava.net/rongxh7/category/39847.html</link><description>相信自己的人生有无限可能，把握每一个机会，全力以赴……</description><language>zh-cn</language><lastBuildDate>Thu, 02 Sep 2010 09:18:23 GMT</lastBuildDate><pubDate>Thu, 02 Sep 2010 09:18:23 GMT</pubDate><ttl>60</ttl><item><title>Hibernate多对多关联映射的HQL中的in条件查询问题</title><link>http://www.blogjava.net/rongxh7/archive/2009/06/21/283479.html</link><dc:creator>心梦帆影</dc:creator><author>心梦帆影</author><pubDate>Sun, 21 Jun 2009 12:11:00 GMT</pubDate><guid>http://www.blogjava.net/rongxh7/archive/2009/06/21/283479.html</guid><wfw:comment>http://www.blogjava.net/rongxh7/comments/283479.html</wfw:comment><comments>http://www.blogjava.net/rongxh7/archive/2009/06/21/283479.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.blogjava.net/rongxh7/comments/commentRss/283479.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/rongxh7/services/trackbacks/283479.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: Hibernate的HQL语句中的“in条件”句如：x  in(‘a’，’b’，’c’)，要求的是x是(‘a’，’b’，’c’)中的一个元素，而select role.users这样查出来的是集合的集合，它内部的元素应该是一个集合：set<user> in (select role.users…)，而不是一个对象: user in (select role.users…)。<br><br>可惜的是HQL语句没有set<user> in (select role.users….)这样的子句，后来，查了一下Hibernate的参考文档，得到解决方法。原来，Hibernate的HQL语句中的“in条件”中，可加入”elements”关键词，即上面的查询语句变成：<br><br>&nbsp;&nbsp;<a href='http://www.blogjava.net/rongxh7/archive/2009/06/21/283479.html'>阅读全文</a><img src ="http://www.blogjava.net/rongxh7/aggbug/283479.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/rongxh7/" target="_blank">心梦帆影</a> 2009-06-21 20:11 <a href="http://www.blogjava.net/rongxh7/archive/2009/06/21/283479.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Hibernate(JPA)多对多(ManyToMany)关联映射不完美之处</title><link>http://www.blogjava.net/rongxh7/archive/2009/06/08/280637.html</link><dc:creator>心梦帆影</dc:creator><author>心梦帆影</author><pubDate>Mon, 08 Jun 2009 05:33:00 GMT</pubDate><guid>http://www.blogjava.net/rongxh7/archive/2009/06/08/280637.html</guid><wfw:comment>http://www.blogjava.net/rongxh7/comments/280637.html</wfw:comment><comments>http://www.blogjava.net/rongxh7/archive/2009/06/08/280637.html#Feedback</comments><slash:comments>7</slash:comments><wfw:commentRss>http://www.blogjava.net/rongxh7/comments/commentRss/280637.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/rongxh7/services/trackbacks/280637.html</trackback:ping><description><![CDATA[近来，在做的一个NewsMS项目中，需要用到多对多关联映射，以下是项目中用到的两个实体类：用户类User和角色类Role，它们之间是多对多的关系。<br />
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><span style="color: #008000">//</span><span style="color: #008000">用户表</span><span style="color: #008000"><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #000000">@Entity<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />@Table(name</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">rong_user</span><span style="color: #000000">"</span><span style="color: #000000">)<br />
<img id="Codehighlighter1_74_489_Open_Image" onclick="this.style.display='none'; Codehighlighter1_74_489_Open_Text.style.display='none'; Codehighlighter1_74_489_Closed_Image.style.display='inline'; Codehighlighter1_74_489_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif"  alt="" /><img style="display: none" id="Codehighlighter1_74_489_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_74_489_Closed_Text.style.display='none'; Codehighlighter1_74_489_Open_Image.style.display='inline'; Codehighlighter1_74_489_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif"  alt="" /></span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">class</span><span style="color: #000000">&nbsp;User</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_74_489_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_74_489_Open_Text"><span style="color: #000000">{<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" /><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">省略其它内容</span><span style="color: #008000"><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" /></span><span style="color: #000000"><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">private</span><span style="color: #000000">&nbsp;Set</span><span style="color: #000000">&lt;</span><span style="color: #000000">Role</span><span style="color: #000000">&gt;</span><span style="color: #000000">&nbsp;roles&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;LinkedHashSet</span><span style="color: #000000">&lt;</span><span style="color: #000000">Role</span><span style="color: #000000">&gt;</span><span style="color: #000000">();&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">角色集合</span><span style="color: #008000"><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img id="Codehighlighter1_174_213_Open_Image" onclick="this.style.display='none'; Codehighlighter1_174_213_Open_Text.style.display='none'; Codehighlighter1_174_213_Closed_Image.style.display='inline'; Codehighlighter1_174_213_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif"  alt="" /><img style="display: none" id="Codehighlighter1_174_213_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_174_213_Closed_Text.style.display='none'; Codehighlighter1_174_213_Open_Image.style.display='inline'; Codehighlighter1_174_213_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;@ManyToMany(cascade&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_174_213_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_174_213_Open_Text"><span style="color: #000000">{CascadeType.PERSIST,&nbsp;CascadeType.MERGE}</span></span><span style="color: #000000">)<br />
<img id="Codehighlighter1_267_298_Open_Image" onclick="this.style.display='none'; Codehighlighter1_267_298_Open_Text.style.display='none'; Codehighlighter1_267_298_Closed_Image.style.display='inline'; Codehighlighter1_267_298_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif"  alt="" /><img style="display: none" id="Codehighlighter1_267_298_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_267_298_Closed_Text.style.display='none'; Codehighlighter1_267_298_Open_Image.style.display='inline'; Codehighlighter1_267_298_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;@JoinTable(name&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">rong_user_role</span><span style="color: #000000">"</span><span style="color: #000000">,&nbsp;joinColumns&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_267_298_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_267_298_Open_Text"><span style="color: #000000">{&nbsp;@JoinColumn(name&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">user_id</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;)}</span></span><span style="color: #000000">,&nbsp;inverseJoinColumns&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_322_354_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_322_354_Open_Text"><span style="color: #000000">{&nbsp;@JoinColumn(name&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">role_id</span><span style="color: #000000">"</span><span style="color: #000000">)&nbsp;}</span></span><span style="color: #000000">)<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;@OrderBy(</span><span style="color: #000000">"</span><span style="color: #000000">id</span><span style="color: #000000">"</span><span style="color: #000000">)<br />
<img id="Codehighlighter1_402_421_Open_Image" onclick="this.style.display='none'; Codehighlighter1_402_421_Open_Text.style.display='none'; Codehighlighter1_402_421_Closed_Image.style.display='inline'; Codehighlighter1_402_421_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif"  alt="" /><img style="display: none" id="Codehighlighter1_402_421_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_402_421_Closed_Text.style.display='none'; Codehighlighter1_402_421_Open_Image.style.display='inline'; Codehighlighter1_402_421_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;Set</span><span style="color: #000000">&lt;</span><span style="color: #000000">Role</span><span style="color: #000000">&gt;</span><span style="color: #000000">&nbsp;getRoles()&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_402_421_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_402_421_Open_Text"><span style="color: #000000">{<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;roles;<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img id="Codehighlighter1_462_487_Open_Image" onclick="this.style.display='none'; Codehighlighter1_462_487_Open_Text.style.display='none'; Codehighlighter1_462_487_Closed_Image.style.display='inline'; Codehighlighter1_462_487_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif"  alt="" /><img style="display: none" id="Codehighlighter1_462_487_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_462_487_Closed_Text.style.display='none'; Codehighlighter1_462_487_Open_Image.style.display='inline'; Codehighlighter1_462_487_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;setRoles(Set</span><span style="color: #000000">&lt;</span><span style="color: #000000">Role</span><span style="color: #000000">&gt;</span><span style="color: #000000">&nbsp;roles)&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_462_487_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_462_487_Open_Text"><span style="color: #000000">{<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">this</span><span style="color: #000000">.roles&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;roles;<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif"  alt="" />}</span></span></div>
<br />
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><span style="color: #008000">//</span><span style="color: #008000">角色表</span><span style="color: #008000"><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #000000">@Entity<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />@Table(name</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">rong_role</span><span style="color: #000000">"</span><span style="color: #000000">)<br />
<img id="Codehighlighter1_56_352_Open_Image" onclick="this.style.display='none'; Codehighlighter1_56_352_Open_Text.style.display='none'; Codehighlighter1_56_352_Closed_Image.style.display='inline'; Codehighlighter1_56_352_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif"  alt="" /><img style="display: none" id="Codehighlighter1_56_352_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_56_352_Closed_Text.style.display='none'; Codehighlighter1_56_352_Open_Image.style.display='inline'; Codehighlighter1_56_352_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif"  alt="" /></span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">class</span><span style="color: #000000">&nbsp;Role</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_56_352_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_56_352_Open_Text"><span style="color: #000000">{<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">省略其它内容</span><span style="color: #008000"><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" /></span><span style="color: #000000"><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">private</span><span style="color: #000000">&nbsp;Set</span><span style="color: #000000">&lt;</span><span style="color: #000000">User</span><span style="color: #000000">&gt;</span><span style="color: #000000">&nbsp;user&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;LinkedHashSet</span><span style="color: #000000">&lt;</span><span style="color: #000000">User</span><span style="color: #000000">&gt;</span><span style="color: #000000">();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">用户集合</span><span style="color: #008000"><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" /></span><span style="color: #000000"><br />
<img id="Codehighlighter1_156_195_Open_Image" onclick="this.style.display='none'; Codehighlighter1_156_195_Open_Text.style.display='none'; Codehighlighter1_156_195_Closed_Image.style.display='inline'; Codehighlighter1_156_195_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif"  alt="" /><img style="display: none" id="Codehighlighter1_156_195_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_156_195_Closed_Text.style.display='none'; Codehighlighter1_156_195_Open_Image.style.display='inline'; Codehighlighter1_156_195_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;@ManyToMany(cascade&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_156_195_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_156_195_Open_Text"><span style="color: #000000">{CascadeType.PERSIST,&nbsp;CascadeType.MERGE}</span></span><span style="color: #000000">,&nbsp;mappedBy&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">roles</span><span style="color: #000000">"</span><span style="color: #000000">,&nbsp;fetch&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;FetchType.LAZY)<br />
<img id="Codehighlighter1_270_288_Open_Image" onclick="this.style.display='none'; Codehighlighter1_270_288_Open_Text.style.display='none'; Codehighlighter1_270_288_Closed_Image.style.display='inline'; Codehighlighter1_270_288_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif"  alt="" /><img style="display: none" id="Codehighlighter1_270_288_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_270_288_Closed_Text.style.display='none'; Codehighlighter1_270_288_Open_Image.style.display='inline'; Codehighlighter1_270_288_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;Set</span><span style="color: #000000">&lt;</span><span style="color: #000000">User</span><span style="color: #000000">&gt;</span><span style="color: #000000">&nbsp;getUser()&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_270_288_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_270_288_Open_Text"><span style="color: #000000">{<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;user;<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img id="Codehighlighter1_327_350_Open_Image" onclick="this.style.display='none'; Codehighlighter1_327_350_Open_Text.style.display='none'; Codehighlighter1_327_350_Closed_Image.style.display='inline'; Codehighlighter1_327_350_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif"  alt="" /><img style="display: none" id="Codehighlighter1_327_350_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_327_350_Closed_Text.style.display='none'; Codehighlighter1_327_350_Open_Image.style.display='inline'; Codehighlighter1_327_350_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;setUser(Set</span><span style="color: #000000">&lt;</span><span style="color: #000000">User</span><span style="color: #000000">&gt;</span><span style="color: #000000">&nbsp;user)&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_327_350_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_327_350_Open_Text"><span style="color: #000000">{<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">this</span><span style="color: #000000">.user&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;user;<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif"  alt="" />}</span></span><span style="color: #000000"><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span></div>
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 这两个生成数据库中的三个表，分别是rong_user, rong_role和一个中间表rong_user_role。<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Hibernate和JPA控制关联关系的，只能是一方，不能双方控制的，上面的程序中，我通过在Role类中设置mappedBy="roles"来设置由User来控制关系，<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 这样，问题就出现了：当我在要删除角色Role时，如果没有用户拥有这个角色的话，就能成功删除；如果有用户拥有这个角色的时候，就不能删除，会抛以下异常：<br />
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><span style="color: #000000">12</span><span style="color: #000000">:</span><span style="color: #000000">53</span><span style="color: #000000">:</span><span style="color: #000000">33</span><span style="color: #000000">,</span><span style="color: #000000">125</span><span style="color: #000000">&nbsp;&nbsp;WARN&nbsp;JDBCExceptionReporter:</span><span style="color: #000000">100</span><span style="color: #000000">&nbsp;-&nbsp;SQL&nbsp;Error:&nbsp;</span><span style="color: #000000">1451</span><span style="color: #000000">,</span><span style="color: #000000">&nbsp;SQLState:&nbsp;</span><span style="color: #000000">23000</span><span style="color: #000000"><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #000000">12</span><span style="color: #000000">:</span><span style="color: #000000">53</span><span style="color: #000000">:</span><span style="color: #000000">33</span><span style="color: #000000">,</span><span style="color: #000000">125</span><span style="color: #000000">&nbsp;ERROR&nbsp;JDBCExceptionReporter:</span><span style="color: #000000">101</span><span style="color: #000000">&nbsp;-&nbsp;Cannot&nbsp;delete&nbsp;or&nbsp;update&nbsp;a&nbsp;parent&nbsp;row:&nbsp;a&nbsp;foreign&nbsp;key&nbsp;constraint&nbsp;fails&nbsp;(`newsms/rong_user_role`</span><span style="color: #000000">,</span><span style="color: #000000">&nbsp;CONSTRAINT&nbsp;`FKF1698421A337A5FA`&nbsp;FOREIGN&nbsp;KEY&nbsp;(`role_id`)&nbsp;REFERENCES&nbsp;`rong_role`&nbsp;(`id`))<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #000000">12</span><span style="color: #000000">:</span><span style="color: #000000">53</span><span style="color: #000000">:</span><span style="color: #000000">33</span><span style="color: #000000">,</span><span style="color: #000000">171</span><span style="color: #000000">&nbsp;ERROR&nbsp;AbstractFlushingEventListener:</span><span style="color: #000000">324</span><span style="color: #000000">&nbsp;-&nbsp;Could&nbsp;not&nbsp;synchronize&nbsp;database&nbsp;state&nbsp;with&nbsp;session<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />org.hibernate.exception.ConstraintViolationException:&nbsp;Could&nbsp;not&nbsp;execute&nbsp;JDBC&nbsp;batch&nbsp;update<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />/****堆栈信息略****/<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span></div>
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><span style="color: #000000">Caused&nbsp;by:&nbsp;java.sql.BatchUpdateException:&nbsp;Cannot&nbsp;delete&nbsp;or&nbsp;update&nbsp;a&nbsp;parent&nbsp;row:&nbsp;a&nbsp;foreign&nbsp;key&nbsp;constraint&nbsp;fails&nbsp;(`newsms/rong_user_role`</span><span style="color: #000000">,</span><span style="color: #000000">&nbsp;CONSTRAINT&nbsp;`FKF1698421A337A5FA`&nbsp;FOREIGN&nbsp;KEY&nbsp;(`role_id`)&nbsp;REFERENCES&nbsp;`rong_role`&nbsp;(`id`))<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />/******堆栈信息略*****/</span></div>
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 当我设置成单向关系映射时，即把Role类中，Set&lt;User&gt;信息去掉，这样，也不能删，原因也是说有外键约束！怎么办？<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 苦恼了好几天，最后，只能归于Hibernate(JPA)的多对多关联映射设计得有点不符实际！就像上面我说的例子，有人选了某角色，就不能删掉该角色。还有一种做法是，在Role类中:<br />
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><img id="Codehighlighter1_22_80_Open_Image" onclick="this.style.display='none'; Codehighlighter1_22_80_Open_Text.style.display='none'; Codehighlighter1_22_80_Closed_Image.style.display='inline'; Codehighlighter1_22_80_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif"  alt="" /><img style="display: none" id="Codehighlighter1_22_80_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_22_80_Closed_Text.style.display='none'; Codehighlighter1_22_80_Open_Image.style.display='inline'; Codehighlighter1_22_80_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif"  alt="" /><span style="color: #000000">@ManyToMany(cascade&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_22_80_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_22_80_Open_Text"><span style="color: #000000">{CascadeType.PERSIST,&nbsp;CascadeType.MERGE,CascadeType.REMOVE}</span></span><span style="color: #000000">,&nbsp;mappedBy&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">roles</span><span style="color: #000000">"</span><span style="color: #000000">,&nbsp;fetch&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;FetchType.LAZY)<br />
<img id="Codehighlighter1_155_173_Open_Image" onclick="this.style.display='none'; Codehighlighter1_155_173_Open_Text.style.display='none'; Codehighlighter1_155_173_Closed_Image.style.display='inline'; Codehighlighter1_155_173_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif"  alt="" /><img style="display: none" id="Codehighlighter1_155_173_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_155_173_Closed_Text.style.display='none'; Codehighlighter1_155_173_Open_Image.style.display='inline'; Codehighlighter1_155_173_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;Set</span><span style="color: #000000">&lt;</span><span style="color: #000000">User</span><span style="color: #000000">&gt;</span><span style="color: #000000">&nbsp;getUser()&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_155_173_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_155_173_Open_Text"><span style="color: #000000">{<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;user;<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 即加多一个&#8220;CascadeType.REMOVE&#8221;，这样能把角色Role给删掉了，但连拥有该角色的所有用户User也被级联删掉了。这样来看，某个用户拥有许多角色，就因为其中有这一个角色，就被级联删了整个自己，那不是很冤枉。这也不符合实际！<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;个人认为，Hibernate(JPA)在设置多对多关联映射时，应该有做法能使得双方都能控制关联关系才好，才符合实际吧！但事实上，好像还没有发现有Hibernate(JPA)这种能力！<br />
<img src ="http://www.blogjava.net/rongxh7/aggbug/280637.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/rongxh7/" target="_blank">心梦帆影</a> 2009-06-08 13:33 <a href="http://www.blogjava.net/rongxh7/archive/2009/06/08/280637.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>奋斗两天，终于开发了自己的DAO层公共类（Spring+Hibernate实现）</title><link>http://www.blogjava.net/rongxh7/archive/2009/05/19/271462.html</link><dc:creator>心梦帆影</dc:creator><author>心梦帆影</author><pubDate>Tue, 19 May 2009 01:56:00 GMT</pubDate><guid>http://www.blogjava.net/rongxh7/archive/2009/05/19/271462.html</guid><wfw:comment>http://www.blogjava.net/rongxh7/comments/271462.html</wfw:comment><comments>http://www.blogjava.net/rongxh7/archive/2009/05/19/271462.html#Feedback</comments><slash:comments>19</slash:comments><wfw:commentRss>http://www.blogjava.net/rongxh7/comments/commentRss/271462.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/rongxh7/services/trackbacks/271462.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要:          此EntityDao接口与EntityDaoImpl实现类,可取代了我们平时写的UserDao,NewsDao,CompanyDao等等,可直接供Service层调用.<br>	public Pager<T> findForPager(final Class<T> entityClass,final String propertyName,final boolean isAsc,final int firstResult,final int maxResults,final Criterion ...criterions){<br>		int totalCounts = findCountsByCriteria(entityClass, criterions);<br>		List<T> entityList = findByCriteria(entityClass, propertyName, isAsc, firstResult, maxResults, criterions);<br>		Pager pager = new Pager();<br>		&nbsp;&nbsp;<a href='http://www.blogjava.net/rongxh7/archive/2009/05/19/271462.html'>阅读全文</a><img src ="http://www.blogjava.net/rongxh7/aggbug/271462.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/rongxh7/" target="_blank">心梦帆影</a> 2009-05-19 09:56 <a href="http://www.blogjava.net/rongxh7/archive/2009/05/19/271462.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>基于Annotation的Struts2.0+Hibernate3.3+Spring2.5整合开发 (3) </title><link>http://www.blogjava.net/rongxh7/archive/2009/03/27/262260.html</link><dc:creator>心梦帆影</dc:creator><author>心梦帆影</author><pubDate>Thu, 26 Mar 2009 16:09:00 GMT</pubDate><guid>http://www.blogjava.net/rongxh7/archive/2009/03/27/262260.html</guid><wfw:comment>http://www.blogjava.net/rongxh7/comments/262260.html</wfw:comment><comments>http://www.blogjava.net/rongxh7/archive/2009/03/27/262260.html#Feedback</comments><slash:comments>33</slash:comments><wfw:commentRss>http://www.blogjava.net/rongxh7/comments/commentRss/262260.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/rongxh7/services/trackbacks/262260.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要:      进入我们基于Annotation的Struts2.0+Hibernate3.3+Spring2.5整合开发的最后一个阶段了，这阶段主要为我们的项目引进Struts2的Annotation。相对于带Annotation的Hibernate与带Annotation的Spring整合来说，带Annotation的Struts与带Annotation的Spring整合还是比较容易实现的。<br>    ………………<br>    成功啦！我们基于Annotation的SSH整合开发终于完成了。我所介绍的Annotation注解其实并不多，还得靠大家找资料去学习。而我们侧重点是在用Annotation时三大框架是如何整合起来的。<br>        说点题外话吧，我们在开发过程中，究竟用Annotation还是XML……<br>&nbsp;&nbsp;<a href='http://www.blogjava.net/rongxh7/archive/2009/03/27/262260.html'>阅读全文</a><img src ="http://www.blogjava.net/rongxh7/aggbug/262260.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/rongxh7/" target="_blank">心梦帆影</a> 2009-03-27 00:09 <a href="http://www.blogjava.net/rongxh7/archive/2009/03/27/262260.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>基于Annotation的Struts2.0+Hibernate3.3+Spring2.5整合开发 (2) </title><link>http://www.blogjava.net/rongxh7/archive/2009/03/25/261782.html</link><dc:creator>心梦帆影</dc:creator><author>心梦帆影</author><pubDate>Tue, 24 Mar 2009 17:05:00 GMT</pubDate><guid>http://www.blogjava.net/rongxh7/archive/2009/03/25/261782.html</guid><wfw:comment>http://www.blogjava.net/rongxh7/comments/261782.html</wfw:comment><comments>http://www.blogjava.net/rongxh7/archive/2009/03/25/261782.html#Feedback</comments><slash:comments>20</slash:comments><wfw:commentRss>http://www.blogjava.net/rongxh7/comments/commentRss/261782.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/rongxh7/services/trackbacks/261782.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要:         基于Annotation的SSH整合开发，其实，并没有我当初想像中那么顺利。真正去做的时候，才发觉有许多问题。但不要紧，探索一下吧。在探索过程中学到知识，才是最重要的。<br>      ……  ……<br>        其实，到现在为止，我们发觉我们的XML配置文件还是很多。其实，这样想想，上一阶段我们省去了xxx.hbm.xml这类的文件，这一阶段，我们少去了<bean id="" class=""><property name="" ref="">这样的配置项。而这些，正是我们项目开发中，大量使用的配置。而只要书写简单的Annotation注解，就可以省去这样，我们何乐而不用。而那些我们保留的XML配置文件（如：数据库连接，事务），这样是写死的，一个项目就写一次或复制过来用，我们保留它又何妨？&nbsp;&nbsp;<a href='http://www.blogjava.net/rongxh7/archive/2009/03/25/261782.html'>阅读全文</a><img src ="http://www.blogjava.net/rongxh7/aggbug/261782.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/rongxh7/" target="_blank">心梦帆影</a> 2009-03-25 01:05 <a href="http://www.blogjava.net/rongxh7/archive/2009/03/25/261782.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>基于Annotation的Struts2.0+Hibernate3.3+Spring2.5整合开发 (1)</title><link>http://www.blogjava.net/rongxh7/archive/2009/03/23/261577.html</link><dc:creator>心梦帆影</dc:creator><author>心梦帆影</author><pubDate>Mon, 23 Mar 2009 13:05:00 GMT</pubDate><guid>http://www.blogjava.net/rongxh7/archive/2009/03/23/261577.html</guid><wfw:comment>http://www.blogjava.net/rongxh7/comments/261577.html</wfw:comment><comments>http://www.blogjava.net/rongxh7/archive/2009/03/23/261577.html#Feedback</comments><slash:comments>32</slash:comments><wfw:commentRss>http://www.blogjava.net/rongxh7/comments/commentRss/261577.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/rongxh7/services/trackbacks/261577.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要:         写这个主题的文章在网络上应该暂时没有吧，也看过许多SSH整合开发的书，许多都是旧版本的框架整合，而且大部分都是以XML配置文件的方式，即使谈到Annotation也是针对其中一个框架而言的。随着开源框架更新版本中不断引进对Annotation的支持，使得我们可以用单方面去管理我们的类与关系，而不用像以往那样，一旦遇到问题，就要不断在Java视图和XML视图中切换。好，开始吧，既然网络中暂时没有这方面的文章，我就来开创个先例。自己探索学习一下，也让大家来学习和提出批评和建议。&nbsp;&nbsp;<a href='http://www.blogjava.net/rongxh7/archive/2009/03/23/261577.html'>阅读全文</a><img src ="http://www.blogjava.net/rongxh7/aggbug/261577.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/rongxh7/" target="_blank">心梦帆影</a> 2009-03-23 21:05 <a href="http://www.blogjava.net/rongxh7/archive/2009/03/23/261577.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Hibernate+Spring+Struts2整合开发中的一个分页显示方案</title><link>http://www.blogjava.net/rongxh7/archive/2008/11/29/243456.html</link><dc:creator>心梦帆影</dc:creator><author>心梦帆影</author><pubDate>Sat, 29 Nov 2008 12:54:00 GMT</pubDate><guid>http://www.blogjava.net/rongxh7/archive/2008/11/29/243456.html</guid><wfw:comment>http://www.blogjava.net/rongxh7/comments/243456.html</wfw:comment><comments>http://www.blogjava.net/rongxh7/archive/2008/11/29/243456.html#Feedback</comments><slash:comments>66</slash:comments><wfw:commentRss>http://www.blogjava.net/rongxh7/comments/commentRss/243456.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/rongxh7/services/trackbacks/243456.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 分页显示一直是web开发中一大烦琐的难题，传统的网页设计只在一个JSP或者ASP页面中书写所有关于数据库操作的代码，那样做分页可能简单一点，但当把网站分层开发后，分页就比较困难了，下面是我做Spring+Hibernate+Struts2项目时设计的分页代码，与大家分享交流。1、DAO层接口的设计，在MemberDao接口中定义了如...&nbsp;&nbsp;<a href='http://www.blogjava.net/rongxh7/archive/2008/11/29/243456.html'>阅读全文</a><img src ="http://www.blogjava.net/rongxh7/aggbug/243456.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/rongxh7/" target="_blank">心梦帆影</a> 2008-11-29 20:54 <a href="http://www.blogjava.net/rongxh7/archive/2008/11/29/243456.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Struts 2.0 整合 Hibernate 3.2 开发注册登录系统</title><link>http://www.blogjava.net/rongxh7/archive/2008/11/11/239769.html</link><dc:creator>心梦帆影</dc:creator><author>心梦帆影</author><pubDate>Mon, 10 Nov 2008 17:44:00 GMT</pubDate><guid>http://www.blogjava.net/rongxh7/archive/2008/11/11/239769.html</guid><wfw:comment>http://www.blogjava.net/rongxh7/comments/239769.html</wfw:comment><comments>http://www.blogjava.net/rongxh7/archive/2008/11/11/239769.html#Feedback</comments><slash:comments>37</slash:comments><wfw:commentRss>http://www.blogjava.net/rongxh7/comments/commentRss/239769.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/rongxh7/services/trackbacks/239769.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要:         开发工具：MyEclipse 6.0 ，Tomcat 5.5 ，JDK 1.5  ，MySQL 5.0 ；开发准备：下载Struts 2.0和Hibernate 3.2，大家可Struts和Hibernate的官方网站下载这两个框架。我们先来总览一下开发完成后的包—类图：<br>&nbsp;&nbsp;<a href='http://www.blogjava.net/rongxh7/archive/2008/11/11/239769.html'>阅读全文</a><img src ="http://www.blogjava.net/rongxh7/aggbug/239769.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/rongxh7/" target="_blank">心梦帆影</a> 2008-11-11 01:44 <a href="http://www.blogjava.net/rongxh7/archive/2008/11/11/239769.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>