<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 軋鋼王子 閱讀(949) 評論(0)  編輯  收藏 所屬分類: Hibernate


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


    網站導航:
     
    主站蜘蛛池模板: 日韩视频免费一区二区三区| 免费观看成人毛片a片2008| 亚洲成av人在片观看| 羞羞漫画页面免费入口欢迎你| 永久免费看bbb| 美女免费精品高清毛片在线视| 免费黄色app网站| 色偷偷尼玛图亚洲综合| 免费a在线观看播放| 一级做a爱过程免费视| 亚洲欭美日韩颜射在线二| 国产无遮挡裸体免费视频在线观看| 中文字幕精品亚洲无线码二区| 中文在线免费视频| 久久亚洲伊人中字综合精品| 2019中文字幕在线电影免费| 中中文字幕亚洲无线码| 国产精品va无码免费麻豆| 国产特黄特色的大片观看免费视频| 亚洲精品无码永久在线观看你懂的| 免费无码一区二区三区蜜桃| 久久精品国产亚洲AV网站| 丁香花免费完整高清观看| 亚洲欧洲无卡二区视頻| 亚洲av无码专区在线观看素人| 免费无码H肉动漫在线观看麻豆| 亚洲高清美女一区二区三区| 国产精品美女午夜爽爽爽免费| 青青草国产免费国产是公开| 亚洲成AV人片天堂网无码| 无码永久免费AV网站| 成年网站免费入口在线观看 | 国产精品jizz在线观看免费| 一级黄色免费大片| 中文字幕亚洲色图| 国产中文字幕免费| 三年片在线观看免费大全电影 | 国产va免费精品观看精品| 国产91成人精品亚洲精品| 国产AV无码专区亚洲Av| 免费看少妇作爱视频|