﻿<?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-peacess-随笔分类-hibernate</title><link>http://www.blogjava.net/peacess/category/16886.html</link><description /><language>zh-cn</language><lastBuildDate>Wed, 04 Jul 2007 07:18:49 GMT</lastBuildDate><pubDate>Wed, 04 Jul 2007 07:18:49 GMT</pubDate><ttl>60</ttl><item><title>hibernate 多对多关系在mysql、oracle中的不同</title><link>http://www.blogjava.net/peacess/archive/2007/06/11/123485.html</link><dc:creator>中东</dc:creator><author>中东</author><pubDate>Mon, 11 Jun 2007 15:19:00 GMT</pubDate><guid>http://www.blogjava.net/peacess/archive/2007/06/11/123485.html</guid><wfw:comment>http://www.blogjava.net/peacess/comments/123485.html</wfw:comment><comments>http://www.blogjava.net/peacess/archive/2007/06/11/123485.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/peacess/comments/commentRss/123485.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/peacess/services/trackbacks/123485.html</trackback:ping><description><![CDATA[用户（User）与角色（Role）多对多关系（UserRole）<br>下面是表的代码（配置为annotation）<br>User：<br>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><img id="Code_Closed_Image_225847" onclick="this.style.display='none'; code_closed_text_225847.style.display=" none="" ;="" code_open_image_225847.style.display="'inline';" code_open_text_225847.style.display="'inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedBlock.gif" align="top" height="16" width="11"><img id="Code_Open_Image_225847" style="display: none;" onclick="this.style.display='none'; code_open_text_225847.style.display=" none="" ;="" code_closed_image_225847.style.display="'inline';" code_closed_text_225847.style.display="'inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockStart.gif" align="top" height="16" width="11"><br><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>-->package&nbsp;sub;<br>import&nbsp;java.io.Serializable;<br>import&nbsp;java.util.Set;<br>import&nbsp;javax.persistence.Entity;<br>import&nbsp;javax.persistence.GeneratedValue;<br>import&nbsp;javax.persistence.Id;<br>import&nbsp;javax.persistence.JoinColumn;<br>import&nbsp;javax.persistence.JoinTable;<br>import&nbsp;javax.persistence.ManyToMany;<br>@Entity<br>public&nbsp;class&nbsp;User&nbsp;implements&nbsp;Serializable<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp;/**<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/<br>&nbsp;&nbsp;&nbsp;&nbsp;private&nbsp;static&nbsp;final&nbsp;long&nbsp;serialVersionUID&nbsp;=&nbsp;1L;<br>&nbsp;&nbsp;&nbsp;&nbsp;private&nbsp;Long&nbsp;id;<br>&nbsp;&nbsp;&nbsp;&nbsp;private&nbsp;Set&lt;Role&gt;&nbsp;roles;<br>&nbsp;&nbsp;&nbsp;&nbsp;@Id<br>&nbsp;&nbsp;&nbsp;&nbsp;@GeneratedValue<br>&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;Long&nbsp;getId()<br>&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;id;<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;void&nbsp;setId(Long&nbsp;id)<br>&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.id&nbsp;=&nbsp;id;<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;@ManyToMany<br>&nbsp;&nbsp;&nbsp;&nbsp;@JoinTable(name="UserRole",joinColumns={@JoinColumn(name="user_ID")},inverseJoinColumns={@JoinColumn(name="role_ID")})<br>&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;Set&lt;Role&gt;&nbsp;getRoles()<br>&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;roles;<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;void&nbsp;setRoles(Set&lt;Role&gt;&nbsp;roles)<br>&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.roles&nbsp;=&nbsp;roles;<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br>}</div>
<br>
Role：<br>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><img id="Code_Closed_Image_225754" onclick="this.style.display='none'; code_closed_text_225754.style.display=" none="" ;="" code_open_image_225754.style.display="'inline';" code_open_text_225754.style.display="'inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedBlock.gif" align="top" height="16" width="11"><img id="Code_Open_Image_225754" style="display: none;" onclick="this.style.display='none'; code_open_text_225754.style.display=" none="" ;="" code_closed_image_225754.style.display="'inline';" code_closed_text_225754.style.display="'inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockStart.gif" align="top" height="16" width="11"><br><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>-->package&nbsp;sub;<br>import&nbsp;java.io.Serializable;<br>import&nbsp;java.util.Set;<br>import&nbsp;javax.persistence.Entity;<br>import&nbsp;javax.persistence.GeneratedValue;<br>import&nbsp;javax.persistence.Id;<br>import&nbsp;javax.persistence.JoinColumn;<br>import&nbsp;javax.persistence.JoinTable;<br>import&nbsp;javax.persistence.ManyToMany;<br>@Entity<br>public&nbsp;class&nbsp;Role&nbsp;implements&nbsp;Serializable<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp;/**<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/<br>&nbsp;&nbsp;&nbsp;&nbsp;private&nbsp;static&nbsp;final&nbsp;long&nbsp;serialVersionUID&nbsp;=&nbsp;1L;<br>&nbsp;&nbsp;&nbsp;&nbsp;private&nbsp;Long&nbsp;id;<br>&nbsp;&nbsp;&nbsp;&nbsp;private&nbsp;Set&lt;User&gt;&nbsp;users;<br>&nbsp;&nbsp;&nbsp;&nbsp;@Id<br>&nbsp;&nbsp;&nbsp;&nbsp;@GeneratedValue<br>&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;Long&nbsp;getId()<br>&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;id;<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;void&nbsp;setId(Long&nbsp;id)<br>&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.id&nbsp;=&nbsp;id;<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp; @ManyToMany<br>&nbsp;&nbsp;&nbsp;&nbsp;@JoinTable(name="UserRole",joinColumns={@JoinColumn(name="role_ID")},inverseJoinColumns={@JoinColumn(name="user_ID")})<br>&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;Set&lt;User&gt;&nbsp;getUsers()<br>&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;users;<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;void&nbsp;setUsers(Set&lt;User&gt;&nbsp;users)<br>&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.users&nbsp;=&nbsp;users;<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br>}<br></div>
<br>UserRoleId：<br>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><img id="Code_Closed_Image_225926" onclick="this.style.display='none'; code_closed_text_225926.style.display=" none="" ;="" code_open_image_225926.style.display="'inline';" code_open_text_225926.style.display="'inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedBlock.gif" align="top" height="16" width="11"><img id="Code_Open_Image_225926" style="display: none;" onclick="this.style.display='none'; code_open_text_225926.style.display=" none="" ;="" code_closed_image_225926.style.display="'inline';" code_closed_text_225926.style.display="'inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockStart.gif" align="top" height="16" width="11"><br><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>-->package&nbsp;sub;<br>import&nbsp;java.io.Serializable;<br>import&nbsp;javax.persistence.Embeddable;<br>@Embeddable<br>public&nbsp;class&nbsp;UserRoleId&nbsp;implements&nbsp;Serializable<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp;/**<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/<br>&nbsp;&nbsp;&nbsp;&nbsp;private&nbsp;static&nbsp;final&nbsp;long&nbsp;serialVersionUID&nbsp;=&nbsp;1L;<br>&nbsp;&nbsp;&nbsp;&nbsp;private&nbsp;Long&nbsp;userId;<br>&nbsp;&nbsp;&nbsp;&nbsp;private&nbsp;Long&nbsp;roleId;<br>&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;UserRoleId(Long&nbsp;userId,&nbsp;Long&nbsp;roleId)<br>&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.userId&nbsp;=&nbsp;userId;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.roleId&nbsp;=&nbsp;roleId;<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;UserRoleId()<br>&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this(null,null);<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;@Override<br>&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;boolean&nbsp;equals(Object&nbsp;obj)<br>&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(obj&nbsp;==&nbsp;this)return&nbsp;true;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(obj&nbsp;instanceof&nbsp;UserRoleId)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;final&nbsp;UserRoleId&nbsp;other&nbsp;=&nbsp;(UserRoleId)&nbsp;obj;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Long&nbsp;userT&nbsp;=&nbsp;getUserId();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Long&nbsp;userOther&nbsp;=&nbsp;other.getUserId();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Long&nbsp;roleT&nbsp;=&nbsp;getRoleId();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Long&nbsp;roleOther&nbsp;=&nbsp;other.getRoleId();<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;((userT&nbsp;==&nbsp;userOther)&nbsp;||&nbsp;(userT&nbsp;!=&nbsp;null&nbsp;&amp;&amp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;userOther&nbsp;!=&nbsp;null&nbsp;&amp;&amp;&nbsp;userT.equals(userOther)))&nbsp;&amp;&amp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;((roleT&nbsp;==&nbsp;roleOther)&nbsp;||&nbsp;(roleT&nbsp;!=&nbsp;null&nbsp;&amp;&amp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;roleOther&nbsp;!=&nbsp;null&nbsp;&amp;&amp;&nbsp;roleT.equals(<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;roleOther)));<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;false;<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;@Override<br>&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;int&nbsp;hashCode()<br>&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;re&nbsp;=&nbsp;17;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;re&nbsp;+=&nbsp;(userId&nbsp;==&nbsp;null?0:userId.hashCode());<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;re&nbsp;+=&nbsp;(roleId&nbsp;==&nbsp;null?0:roleId.hashCode());<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;37*re;<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;Long&nbsp;getUserId()<br>&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;userId;<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;void&nbsp;setUserId(Long&nbsp;userId)<br>&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.userId&nbsp;=&nbsp;userId;<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;Long&nbsp;getRoleId()<br>&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;roleId;<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;void&nbsp;setRoleId(Long&nbsp;roleId)<br>&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.roleId&nbsp;=&nbsp;roleId;<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br>}<br></div>
<br>UserRole：<br>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><img id="Code_Closed_Image_230035" onclick="this.style.display='none'; code_closed_text_230035.style.display=" none="" ;="" code_open_image_230035.style.display="'inline';" code_open_text_230035.style.display="'inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedBlock.gif" align="top" height="16" width="11"><img id="Code_Open_Image_230035" style="display: none;" onclick="this.style.display='none'; code_open_text_230035.style.display=" none="" ;="" code_closed_image_230035.style.display="'inline';" code_closed_text_230035.style.display="'inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockStart.gif" align="top" height="16" width="11"><br><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>-->package&nbsp;sub;<br>import&nbsp;java.io.Serializable;<br>import&nbsp;javax.persistence.AttributeOverride;<br>import&nbsp;javax.persistence.AttributeOverrides;<br>import&nbsp;javax.persistence.Column;<br>import&nbsp;javax.persistence.EmbeddedId;<br>import&nbsp;javax.persistence.Entity;<br>import&nbsp;javax.persistence.FetchType;<br>import&nbsp;javax.persistence.JoinColumn;<br>import&nbsp;javax.persistence.ManyToOne;<br>@Entity<br>public&nbsp;class&nbsp;UserRole&nbsp;implements&nbsp;Serializable<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp;/**<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/<br>&nbsp;&nbsp;&nbsp;&nbsp;private&nbsp;static&nbsp;final&nbsp;long&nbsp;serialVersionUID&nbsp;=&nbsp;1L;<br>&nbsp;&nbsp;&nbsp;&nbsp;private&nbsp;UserRoleId&nbsp;id;<br>&nbsp;&nbsp;&nbsp;&nbsp;private&nbsp;Role&nbsp;role;<br>&nbsp;&nbsp;&nbsp;&nbsp;private&nbsp;User&nbsp;user;<br>&nbsp;&nbsp;&nbsp;&nbsp;@EmbeddedId<br>&nbsp;&nbsp;&nbsp;&nbsp;@AttributeOverrides(&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@AttributeOverride(name&nbsp;=&nbsp;"userId",&nbsp;column&nbsp;=&nbsp;@Column(name&nbsp;=&nbsp;"user_ID",&nbsp;unique&nbsp;=&nbsp;false,&nbsp;nullable&nbsp;=&nbsp;false,&nbsp;insertable&nbsp;=&nbsp;true,&nbsp;updatable&nbsp;=&nbsp;true)),<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@AttributeOverride(name&nbsp;=&nbsp;"roleId",&nbsp;column&nbsp;=&nbsp;@Column(name&nbsp;=&nbsp;"role_ID",&nbsp;unique&nbsp;=&nbsp;false,&nbsp;nullable&nbsp;=&nbsp;false,&nbsp;insertable&nbsp;=&nbsp;true,&nbsp;updatable&nbsp;=&nbsp;true))&nbsp;})<br>&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;UserRoleId&nbsp;getId()<br>&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;id;<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;@ManyToOne(cascade&nbsp;=&nbsp;{})<br>&nbsp;&nbsp;&nbsp;&nbsp;@JoinColumn(name&nbsp;=&nbsp;"role_ID",&nbsp;unique&nbsp;=&nbsp;false,&nbsp;nullable&nbsp;=&nbsp;false,&nbsp;insertable&nbsp;=&nbsp;false,&nbsp;updatable&nbsp;=&nbsp;false)<br>&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;Role&nbsp;getRole()<br>&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;role;<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;@ManyToOne(cascade&nbsp;=&nbsp;{},&nbsp;fetch&nbsp;=&nbsp;FetchType.EAGER)<br>&nbsp;&nbsp;&nbsp;&nbsp;@JoinColumn(name&nbsp;=&nbsp;"user_ID",&nbsp;unique&nbsp;=&nbsp;false,&nbsp;nullable&nbsp;=&nbsp;false,&nbsp;insertable&nbsp;=&nbsp;false,&nbsp;updatable&nbsp;=&nbsp;false)<br>&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;User&nbsp;getUser()<br>&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;user;<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;void&nbsp;setId(UserRoleId&nbsp;id)<br>&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.id&nbsp;=&nbsp;id;<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;void&nbsp;setRole(Role&nbsp;role)<br>&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.role&nbsp;=&nbsp;role;<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;void&nbsp;setUser(User&nbsp;user)<br>&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.user&nbsp;=&nbsp;user;<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br>}<br></div>
<br>&nbsp;&nbsp;&nbsp; 在mysql数据库中，保存UserRole时出错。而完全相同的代码在oracle数据中正确。<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>-->&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;User&nbsp;user;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Role&nbsp;role;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//经过多步操作以后，user与role都保存到数据库，与之相关联的session已关闭<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Session&nbsp;s&nbsp;=&nbsp;null;//取得s的代码没有写出来<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;s.beginTransaction();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;UserRole&nbsp;userRole&nbsp;=&nbsp;new&nbsp;UserRole();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;userRole.setId(new&nbsp;UserRoleId(user.getId(),role.getId()));<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;userRole.setUser(user);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;userRole.setRole(role);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;s.persist(userRole);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;s.getTransaction().commit();<br>//一提交就出错，提示user没有保存，但是奇怪的是为什么在oracle中完全正确。<br>//最后在mysql中作如下的修改可以正确保存<br>//把&nbsp;userRole.setUser(user)与userRole.setRole(role)删除<br></div>
有那位知道是什么问题，请告之
<br>   <img src ="http://www.blogjava.net/peacess/aggbug/123485.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/peacess/" target="_blank">中东</a> 2007-06-11 23:19 <a href="http://www.blogjava.net/peacess/archive/2007/06/11/123485.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>