﻿<?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-新的起点-随笔分类-Hibernate</title><link>http://www.blogjava.net/haiing/category/28991.html</link><description>新的起点</description><language>zh-cn</language><lastBuildDate>Wed, 30 Jan 2008 18:39:41 GMT</lastBuildDate><pubDate>Wed, 30 Jan 2008 18:39:41 GMT</pubDate><ttl>60</ttl><item><title>误用SQL Server关键字导致的问题</title><link>http://www.blogjava.net/haiing/archive/2008/01/29/178394.html</link><dc:creator>轧钢王子</dc:creator><author>轧钢王子</author><pubDate>Tue, 29 Jan 2008 10:06:00 GMT</pubDate><guid>http://www.blogjava.net/haiing/archive/2008/01/29/178394.html</guid><wfw:comment>http://www.blogjava.net/haiing/comments/178394.html</wfw:comment><comments>http://www.blogjava.net/haiing/archive/2008/01/29/178394.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/haiing/comments/commentRss/178394.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/haiing/services/trackbacks/178394.html</trackback:ping><description><![CDATA[&nbsp;
<p><span style="font-size: 12pt; font-family: 宋体">刚才在练习使用</span><span style="font-size: 12pt">Hibernate</span><span style="font-size: 12pt; font-family: 宋体">的复合主键例子时，自己很自信的认为已经领悟了其中的原理，于是开始制作例子程序。恩，想起前段时间确实有个可以利用复合主键的地方，那就是公寓寝室表，于是开始建立数据库表：</span></p>
<p><span style="font-size: 12pt; font-family: 宋体">利用</span><span style="font-size: 12pt">Eclipse</span><span style="font-size: 12pt; font-family: 宋体">自动生成机制，很快就完成了映射文件等的生成，测试一下，却发觉出现错误<br />
</span></p>
<p><span style="font-size: 12pt; font-family: 宋体"></p>
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><span style="color: #008080">&nbsp;1</span><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #000000">WARN&nbsp;No&nbsp;appenders&nbsp;could&nbsp;be&nbsp;found&nbsp;</span><span style="color: #0000ff">for</span><span style="color: #000000">&nbsp;logger&nbsp;(org.hibernate.cfg.Environment).<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"  alt="" /><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"  alt="" />log4j:WARN&nbsp;Please&nbsp;initialize&nbsp;the&nbsp;log4j&nbsp;system&nbsp;properly.<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"  alt="" /><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"  alt="" />Hibernate:&nbsp;insert&nbsp;into&nbsp;HAIING.dbo.DORMROOM&nbsp;(desc,&nbsp;dorm,&nbsp;room)&nbsp;values&nbsp;(</span><span style="color: #000000">?</span><span style="color: #000000">,&nbsp;</span><span style="color: #000000">?</span><span style="color: #000000">,&nbsp;</span><span style="color: #000000">?</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"  alt="" /><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"  alt="" />org.hibernate.exception.GenericJDBCException:&nbsp;could&nbsp;not&nbsp;insert:&nbsp;[com.haiing.hibernate.fuhezhujian.DormRoom]<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"  alt="" /><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"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;org.hibernate.exception.SQLStateConverter.handledNonSpecificException(SQLStateConverter.java:</span><span style="color: #000000">82</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"  alt="" /><br />
</span><span style="color: #008080">11</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:</span><span style="color: #000000">70</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"  alt="" /><br />
</span><span style="color: #008080">13</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:</span><span style="color: #000000">43</span><span style="color: #000000">)<br />
</span><span style="color: #008080">14</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
</span><span style="color: #008080">15</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;org.hibernate.persister.entity.BasicEntityPersister.insert(BasicEntityPersister.java:</span><span style="color: #000000">1869</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"  alt="" /><br />
</span><span style="color: #008080">17</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;org.hibernate.persister.entity.BasicEntityPersister.insert(BasicEntityPersister.java:</span><span style="color: #000000">2200</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"  alt="" /><br />
</span><span style="color: #008080">19</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;org.hibernate.action.EntityInsertAction.execute(EntityInsertAction.java:</span><span style="color: #000000">46</span><span style="color: #000000">)<br />
</span><span style="color: #008080">20</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
</span><span style="color: #008080">21</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;org.hibernate.engine.ActionQueue.execute(ActionQueue.java:</span><span style="color: #000000">239</span><span style="color: #000000">)<br />
</span><span style="color: #008080">22</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
</span><span style="color: #008080">23</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:</span><span style="color: #000000">223</span><span style="color: #000000">)<br />
</span><span style="color: #008080">24</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
</span><span style="color: #008080">25</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:</span><span style="color: #000000">136</span><span style="color: #000000">)<br />
</span><span style="color: #008080">26</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
</span><span style="color: #008080">27</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:</span><span style="color: #000000">274</span><span style="color: #000000">)<br />
</span><span style="color: #008080">28</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
</span><span style="color: #008080">29</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:</span><span style="color: #000000">27</span><span style="color: #000000">)<br />
</span><span style="color: #008080">30</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
</span><span style="color: #008080">31</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;org.hibernate.impl.SessionImpl.flush(SessionImpl.java:</span><span style="color: #000000">730</span><span style="color: #000000">)<br />
</span><span style="color: #008080">32</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
</span><span style="color: #008080">33</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:</span><span style="color: #000000">324</span><span style="color: #000000">)<br />
</span><span style="color: #008080">34</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
</span><span style="color: #008080">35</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:</span><span style="color: #000000">86</span><span style="color: #000000">)<br />
</span><span style="color: #008080">36</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
</span><span style="color: #008080">37</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;com.haiing.hibernate.fuhezhujian.DormRoomOperate.insert(DormRoomOperate.java:</span><span style="color: #000000">26</span><span style="color: #000000">)<br />
</span><span style="color: #008080">38</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
</span><span style="color: #008080">39</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;com.haiing.hibernate.fuhezhujian.Test2PK.main(Test2PK.java:</span><span style="color: #000000">19</span><span style="color: #000000">)<br />
</span><span style="color: #008080">40</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
</span><span style="color: #008080">41</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />Caused&nbsp;by:&nbsp;java.sql.SQLException:&nbsp;[Microsoft][SQLServer&nbsp;</span><span style="color: #000000">2000</span><span style="color: #000000">&nbsp;Driver&nbsp;</span><span style="color: #0000ff">for</span><span style="color: #000000">&nbsp;JDBC][SQLServer]在关键字&nbsp;</span><span style="color: #000000">'</span><span style="color: #000000">desc</span><span style="color: #000000">'</span><span style="color: #000000">&nbsp;附近有语法错误。<br />
</span><span style="color: #008080">42</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
</span><span style="color: #008080">43</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;com.microsoft.jdbc.base.BaseExceptions.createException(Unknown&nbsp;Source)<br />
</span><span style="color: #008080">44</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
</span><span style="color: #008080">45</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;com.microsoft.jdbc.base.BaseExceptions.getException(Unknown&nbsp;Source)<br />
</span><span style="color: #008080">46</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
</span><span style="color: #008080">47</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;com.microsoft.jdbc.sqlserver.tds.TDSRequest.processErrorToken(Unknown&nbsp;Source)<br />
</span><span style="color: #008080">48</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
</span><span style="color: #008080">49</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;com.microsoft.jdbc.sqlserver.tds.TDSRequest.processReplyToken(Unknown&nbsp;Source)<br />
</span><span style="color: #008080">50</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
</span><span style="color: #008080">51</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;com.microsoft.jdbc.sqlserver.tds.TDSRPCRequest.processReplyToken(Unknown&nbsp;Source)<br />
</span><span style="color: #008080">52</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
</span><span style="color: #008080">53</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;com.microsoft.jdbc.sqlserver.tds.TDSRequest.processReply(Unknown&nbsp;Source)<br />
</span><span style="color: #008080">54</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
</span><span style="color: #008080">55</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;com.microsoft.jdbc.sqlserver.SQLServerImplStatement.getNextResultType(Unknown&nbsp;Source)<br />
</span><span style="color: #008080">56</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
</span><span style="color: #008080">57</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;com.microsoft.jdbc.base.BaseStatement.commonTransitionToState(Unknown&nbsp;Source)<br />
</span><span style="color: #008080">58</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
</span><span style="color: #008080">59</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;com.microsoft.jdbc.base.BaseStatement.postImplExecute(Unknown&nbsp;Source)<br />
</span><span style="color: #008080">60</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
</span><span style="color: #008080">61</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;com.microsoft.jdbc.base.BasePreparedStatement.postImplExecute(Unknown&nbsp;Source)<br />
</span><span style="color: #008080">62</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
</span><span style="color: #008080">63</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;com.microsoft.jdbc.base.BaseStatement.commonExecute(Unknown&nbsp;Source)<br />
</span><span style="color: #008080">64</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
</span><span style="color: #008080">65</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;com.microsoft.jdbc.base.BaseStatement.executeUpdateInternal(Unknown&nbsp;Source)<br />
</span><span style="color: #008080">66</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
</span><span style="color: #008080">67</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;com.microsoft.jdbc.base.BasePreparedStatement.executeUpdate(Unknown&nbsp;Source)<br />
</span><span style="color: #008080">68</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
</span><span style="color: #008080">69</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;org.hibernate.jdbc.NonBatchingBatcher.addToBatch(NonBatchingBatcher.java:</span><span style="color: #000000">22</span><span style="color: #000000">)<br />
</span><span style="color: #008080">70</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
</span><span style="color: #008080">71</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;org.hibernate.persister.entity.BasicEntityPersister.insert(BasicEntityPersister.java:</span><span style="color: #000000">1853</span><span style="color: #000000">)<br />
</span><span style="color: #008080">72</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
</span><span style="color: #008080">73</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;<img src="http://www.blogjava.net/Images/dot.gif"  alt="" />&nbsp;</span><span style="color: #000000">12</span><span style="color: #000000">&nbsp;more<br />
</span><span style="color: #008080">74</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span></div>
<p><br />
<br />
郁闷了很长时间，开始以为是主键类复写的</span><span style="font-size: 12pt">hash</span><span style="font-size: 12pt; font-family: 宋体">类和</span><span style="font-size: 12pt">equals</span><span style="font-size: 12pt; font-family: 宋体">类有错误，于是使用</span><span style="font-size: 12pt">org.apache.commons.lang</span><span style="font-size: 12pt; font-family: 宋体">中的对应方法重写，可还是不行。端详了很长时间，每一种可能的错误都考虑了，感觉没啥错误了呀！</span></p>
<p><span style="font-size: 12pt; font-family: 宋体">又看了一遍错误的代码，发觉已经生成了</span><span style="font-size: 12pt">HQL</span><span style="font-size: 12pt; font-family: 宋体">语句，而且错误代码几乎全是数据库的问题。数据库的驱动包我已经加进来了，而且在其他的例子中运行很正常呀！莫非是提交语句的错误，看了一下看不出什么来，莫非是数据库的问题？去查看表，发觉有点怪怪的！</span></p>
<p style="text-align: center" align="center"><br />
</p>
<p style="text-indent: 24pt"><span style="font-size: 12pt; font-family: 宋体">这个</span><span style="font-size: 12pt">desc</span><span style="font-size: 12pt; font-family: 宋体">怎么成介个样子了，莫非设置成复合主键之后就成了这个样子，加进一个新的字段没有呀。嘿嘿，那我就删了这个字段，在重新加进来。结果还是不行！</span><span style="font-size: 12pt"><br />
</span><span style="font-size: 12pt; font-family: 宋体">这时我又调整了思路，把生成的</span><span style="font-size: 12pt">SQL</span><span style="font-size: 12pt; font-family: 宋体">语句复制到查询分析器中执行，还是显示&#8220;<span style="color: red">在关键字</span></span><span style="font-size: 12pt; color: red"> 'desc' </span><span style="font-size: 12pt; color: red; font-family: 宋体">附近有语法错误</span><span style="font-size: 12pt; font-family: 宋体">&#8221;，我晕！看来就是数据库的问题了。等等，我突然意识到什么了！</span></p>
<p style="text-indent: 21pt"><span style="font-size: 12pt; font-family: 宋体">关键字？</span></p>
<p style="text-indent: 21pt"><span style="font-size: 12pt">desc?</span></p>
<p style="text-indent: 21pt"><span style="font-size: 12pt; font-family: 宋体">莫非？不是莫非，就是这样呀，我怎么忘得一干二净了，</span><span style="font-size: 12pt">desc</span><span style="font-size: 12pt; font-family: 宋体">这么好的词汇早就被前辈们定义成关键字了，怎么会留给我来使用呢！</span><span style="font-size: 12pt"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="font-size: 12pt; font-family: 宋体">改掉</span><span style="font-size: 12pt">desc</span><span style="font-size: 12pt; font-family: 宋体">，一切问题全部解决了，数据成功的插入到数据库之中！</span></p>
<p style="text-indent: 21pt"><span style="font-size: 12pt; font-family: 宋体">唉，惭愧呀～</span></p>
<img src ="http://www.blogjava.net/haiing/aggbug/178394.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/haiing/" target="_blank">轧钢王子</a> 2008-01-29 18:06 <a href="http://www.blogjava.net/haiing/archive/2008/01/29/178394.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>在Hibernate中使用oracle的sequence产生主键</title><link>http://www.blogjava.net/haiing/archive/2008/01/16/175736.html</link><dc:creator>轧钢王子</dc:creator><author>轧钢王子</author><pubDate>Wed, 16 Jan 2008 09:49:00 GMT</pubDate><guid>http://www.blogjava.net/haiing/archive/2008/01/16/175736.html</guid><wfw:comment>http://www.blogjava.net/haiing/comments/175736.html</wfw:comment><comments>http://www.blogjava.net/haiing/archive/2008/01/16/175736.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/haiing/comments/commentRss/175736.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/haiing/services/trackbacks/175736.html</trackback:ping><description><![CDATA[&nbsp;<span lang="EN-US" style="font-size: 12pt; color: black; font-family: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">&nbsp;&nbsp;&nbsp;</span><span style="font-size: 12pt; color: black; font-family: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">刚刚接触<span lang="EN-US">Hibernate</span>不长时间，今天想动手做一个小例子，数据库使用的是<span lang="EN-US">Oracle</span>。打算使用<span lang="EN-US">Oracle</span>中的序列作为表的主键，却不知道使用<span lang="EN-US">Hibernate</span>如何与其关联在一起。请教同事，被告知要使用诸如<span lang="EN-US">select</span>语句进行查询&#8220;</span><span lang="EN-US">select &nbsp; sequence.nextval &nbsp; from &nbsp; dual</span><span style="font-size: 12pt; color: black; font-family: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">&#8221;，晕倒～<span lang="EN-US"><o:p></o:p></span></span>
<p class="MsoNormal" style="text-indent: 21pt; text-align: left; mso-pagination: widow-orphan" align="left"><span style="font-size: 12pt; color: black; font-family: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">终于等到中午，上网去查资料。得解：<span lang="EN-US"><br />
&nbsp;&nbsp;&nbsp;1</span>、在<span lang="EN-US">oracle </span>首先创建<span lang="EN-US">sequence<br />
</p>
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">create</span><span style="color: #000000">&nbsp;sequence&nbsp;seq_id<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;minvalue&nbsp;</span><span style="font-weight: bold; color: #800000">1</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;start&nbsp;</span><span style="color: #0000ff">with</span><span style="color: #000000">&nbsp;</span><span style="font-weight: bold; color: #800000">1</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;increment&nbsp;</span><span style="color: #0000ff">by</span><span style="color: #000000">&nbsp;</span><span style="font-weight: bold; color: #800000">1</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cache&nbsp;</span><span style="font-weight: bold; color: #800000">20</span><span style="color: #000000">;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span></div>
<p class="MsoNormal" style="text-indent: 21pt; text-align: left; mso-pagination: widow-orphan" align="left"></span></span><span lang="EN-US" style="font-size: 12pt; font-family: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">&nbsp;&nbsp;&nbsp;2.</span><span style="font-size: 12pt; font-family: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">在你的<span lang="EN-US">hbm.xml</span>中的配置<span lang="EN-US"><br />
</p>
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">id&nbsp;</span><span style="color: #ff0000">column</span><span style="color: #0000ff">="ID0000"</span><span style="color: #ff0000">&nbsp;name</span><span style="color: #0000ff">="id"</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"  alt="" />&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">="sequence"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">param&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="sequence"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">seq_id</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">param</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">generator</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">id</span><span style="color: #0000ff">&gt;</span></div>
<p class="MsoNormal" style="text-indent: 21pt; text-align: left; mso-pagination: widow-orphan" align="left">&nbsp;&nbsp;&nbsp;</span>这样再插入数据的时候，<span lang="EN-US">Hibernate</span>回自动生成如下语句：<span lang="EN-US"><br />
</p>
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hibernate:&nbsp;</span><span style="color: #0000ff">select</span><span style="color: #000000">&nbsp;seq_id.nextval&nbsp;</span><span style="color: #0000ff">from</span><span style="color: #000000">&nbsp;dual&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hibernate:&nbsp;&nbsp;</span><span style="color: #0000ff">insert</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">into</span><span style="color: #000000">&nbsp;YXJK.T_YXJK_WHRYTXL&nbsp;(XM0000,&nbsp;ZW0000,&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;LXDH00,SJHM00,DZYJ00,IP0000,ID0000)&nbsp;</span><span style="color: #0000ff">values</span><span style="color: #000000">&nbsp;(?,&nbsp;?,&nbsp;?,&nbsp;?,&nbsp;?,&nbsp;?,&nbsp;?)<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span></div>
<p class="MsoNormal" style="text-indent: 21pt; text-align: left; mso-pagination: widow-orphan" align="left"></span></span><span lang="EN-US" style="font-size: 12pt; font-family: 宋体; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">&nbsp;&nbsp;&nbsp;</span><span style="font-size: 12pt; font-family: 宋体; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">自动生成下一个序列值，然后将对象插入表中。<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 这样问题得解！<br />
<span lang="EN-US"><br />
PS：<br />
<span lang="EN-US" style="font-size: 9pt; color: black; font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-fareast-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">sequence</span><span style="font-size: 9pt; color: black; font-family: 宋体; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">就是采用数据库提供的</span><span lang="EN-US" style="font-size: 9pt; color: black; font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-fareast-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">sequence</span><span style="font-size: 9pt; color: black; font-family: 宋体; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">机制生成主键。如</span><span lang="EN-US" style="font-size: 9pt; color: black; font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-fareast-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">oralce</span><span style="font-size: 9pt; color: black; font-family: 宋体; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">中的</span><span lang="EN-US" style="font-size: 9pt; color: black; font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-fareast-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">Sequence<br />
native</span><span style="font-size: 9pt; color: black; font-family: 宋体; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">就是由</span><span lang="EN-US" style="font-size: 9pt; color: black; font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-fareast-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">hibernate</span><span style="font-size: 9pt; color: black; font-family: 宋体; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">根据数据库的</span><span lang="EN-US" style="font-size: 9pt; color: black; font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-fareast-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">Dialect</span><span style="font-size: 9pt; color: black; font-family: 宋体; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，自动采用</span><span lang="EN-US" style="font-size: 9pt; color: black; font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-fareast-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">identity</span><span style="font-size: 9pt; color: black; font-family: 宋体; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，</span><span lang="EN-US" style="font-size: 9pt; color: black; font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-fareast-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">hilo</span><span style="font-size: 9pt; color: black; font-family: 宋体; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，</span><span lang="EN-US" style="font-size: 9pt; color: black; font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-fareast-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">sequence</span><span style="font-size: 9pt; color: black; font-family: 宋体; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的其中一种作为主键生成方式</span><br style="mso-special-character: line-break" />
<br style="mso-special-character: line-break" />
</span></span></p>
<img src ="http://www.blogjava.net/haiing/aggbug/175736.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/haiing/" target="_blank">轧钢王子</a> 2008-01-16 17:49 <a href="http://www.blogjava.net/haiing/archive/2008/01/16/175736.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>