<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    新的起點

    新的起點
    隨筆 - 9, 文章 - 1, 評論 - 1, 引用 - 0
    數據加載中……

    誤用SQL Server關鍵字導致的問題

     

    剛才在練習使用Hibernate的復合主鍵例子時,自己很自信的認為已經領悟了其中的原理,于是開始制作例子程序。恩,想起前段時間確實有個可以利用復合主鍵的地方,那就是公寓寢室表,于是開始建立數據庫表:

    利用Eclipse自動生成機制,很快就完成了映射文件等的生成,測試一下,卻發覺出現錯誤

     1WARN No appenders could be found for logger (org.hibernate.cfg.Environment).
     2
     3log4j:WARN Please initialize the log4j system properly.
     4
     5Hibernate: insert into HAIING.dbo.DORMROOM (desc, dorm, room) values (???)
     6
     7org.hibernate.exception.GenericJDBCException: could not insert: [com.haiing.hibernate.fuhezhujian.DormRoom]
     8
     9    at org.hibernate.exception.SQLStateConverter.handledNonSpecificException(SQLStateConverter.java:82)
    10
    11    at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:70)
    12
    13    at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
    14
    15    at org.hibernate.persister.entity.BasicEntityPersister.insert(BasicEntityPersister.java:1869)
    16
    17    at org.hibernate.persister.entity.BasicEntityPersister.insert(BasicEntityPersister.java:2200)
    18
    19    at org.hibernate.action.EntityInsertAction.execute(EntityInsertAction.java:46)
    20
    21    at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:239)
    22
    23    at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:223)
    24
    25    at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:136)
    26
    27    at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:274)
    28
    29    at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:27)
    30
    31    at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:730)
    32
    33    at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:324)
    34
    35    at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:86)
    36
    37    at com.haiing.hibernate.fuhezhujian.DormRoomOperate.insert(DormRoomOperate.java:26)
    38
    39    at com.haiing.hibernate.fuhezhujian.Test2PK.main(Test2PK.java:19)
    40
    41Caused by: java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]在關鍵字 'desc' 附近有語法錯誤。
    42
    43    at com.microsoft.jdbc.base.BaseExceptions.createException(Unknown Source)
    44
    45    at com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source)
    46
    47    at com.microsoft.jdbc.sqlserver.tds.TDSRequest.processErrorToken(Unknown Source)
    48
    49    at com.microsoft.jdbc.sqlserver.tds.TDSRequest.processReplyToken(Unknown Source)
    50
    51    at com.microsoft.jdbc.sqlserver.tds.TDSRPCRequest.processReplyToken(Unknown Source)
    52
    53    at com.microsoft.jdbc.sqlserver.tds.TDSRequest.processReply(Unknown Source)
    54
    55    at com.microsoft.jdbc.sqlserver.SQLServerImplStatement.getNextResultType(Unknown Source)
    56
    57    at com.microsoft.jdbc.base.BaseStatement.commonTransitionToState(Unknown Source)
    58
    59    at com.microsoft.jdbc.base.BaseStatement.postImplExecute(Unknown Source)
    60
    61    at com.microsoft.jdbc.base.BasePreparedStatement.postImplExecute(Unknown Source)
    62
    63    at com.microsoft.jdbc.base.BaseStatement.commonExecute(Unknown Source)
    64
    65    at com.microsoft.jdbc.base.BaseStatement.executeUpdateInternal(Unknown Source)
    66
    67    at com.microsoft.jdbc.base.BasePreparedStatement.executeUpdate(Unknown Source)
    68
    69    at org.hibernate.jdbc.NonBatchingBatcher.addToBatch(NonBatchingBatcher.java:22)
    70
    71    at org.hibernate.persister.entity.BasicEntityPersister.insert(BasicEntityPersister.java:1853)
    72
    73     12 more
    74



    郁悶了很長時間,開始以為是主鍵類復寫的hash類和equals類有錯誤,于是使用org.apache.commons.lang中的對應方法重寫,可還是不行。端詳了很長時間,每一種可能的錯誤都考慮了,感覺沒啥錯誤了呀!

    又看了一遍錯誤的代碼,發覺已經生成了HQL語句,而且錯誤代碼幾乎全是數據庫的問題。數據庫的驅動包我已經加進來了,而且在其他的例子中運行很正常呀!莫非是提交語句的錯誤,看了一下看不出什么來,莫非是數據庫的問題?去查看表,發覺有點怪怪的!


    這個desc怎么成介個樣子了,莫非設置成復合主鍵之后就成了這個樣子,加進一個新的字段沒有呀。嘿嘿,那我就刪了這個字段,在重新加進來。結果還是不行!
    這時我又調整了思路,把生成的SQL語句復制到查詢分析器中執行,還是顯示“在關鍵字 'desc' 附近有語法錯誤”,我暈!看來就是數據庫的問題了。等等,我突然意識到什么了!

    關鍵字?

    desc?

    莫非?不是莫非,就是這樣呀,我怎么忘得一干二凈了,desc這么好的詞匯早就被前輩們定義成關鍵字了,怎么會留給我來使用呢!
          
    改掉desc,一切問題全部解決了,數據成功的插入到數據庫之中!

    唉,慚愧呀~

    posted on 2008-01-29 18:06 軋鋼王子 閱讀(948) 評論(0)  編輯  收藏 所屬分類: Hibernate


    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 免费人成在线观看播放国产| 91免费资源网站入口| 亚洲七七久久精品中文国产| jzzijzzij在线观看亚洲熟妇| 最近最新的免费中文字幕| 亚洲人成电影青青在线播放| 97碰公开在线观看免费视频| 亚洲成人网在线观看| 亚洲国产精品免费观看| 亚洲日产乱码一二三区别| 国产资源免费观看| 色天使色婷婷在线影院亚洲| 天堂亚洲免费视频| 国产免费人成视频尤勿视频| 亚洲av无码精品网站| 亚洲大片免费观看| 亚洲中文字幕久久精品无码A | 免费日本一区二区| 亚洲国产日韩一区高清在线 | 一级毛片免费一级直接观看| 亚洲午夜久久久影院伊人| 免费一级毛片在线播放视频| 日韩亚洲Av人人夜夜澡人人爽 | 免费的一级片网站| 一级毛片免费不卡| 久久精品九九亚洲精品| 国产精品视频永久免费播放| 黄色a级片免费看| 亚洲av无码片在线播放| 久久精品免费一区二区喷潮| 色多多www视频在线观看免费| 亚洲AV中文无码乱人伦下载| 97碰公开在线观看免费视频| 男性gay黄免费网站| 图图资源网亚洲综合网站| 毛片免费观看网址| 91视频免费观看| 四虎亚洲精品高清在线观看| 狠狠色伊人亚洲综合成人| 麻豆国产人免费人成免费视频| 中文字幕免费视频精品一|