<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


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


    網站導航:
     
    主站蜘蛛池模板: 久久综合国产乱子伦精品免费| 亚洲精品黄色视频在线观看免费资源 | 亚洲成年人啊啊aa在线观看| 亚洲精品永久在线观看| 女人张腿给男人桶视频免费版| 丁香婷婷亚洲六月综合色| 免费看黄视频网站| 久久精品国产亚洲AV久| 最近中文字幕mv免费高清电影| 亚洲人成人伊人成综合网无码| 在线观看国产情趣免费视频| 看一级毛片免费观看视频| 亚洲精品A在线观看| 亚欧洲精品在线视频免费观看| 亚洲无线一二三四区手机| 黄床大片免费30分钟国产精品 | 一级毛片免费观看不卡视频| 亚洲国产精品久久| 国产91免费在线观看| 亚洲中文字幕无码mv| 全部免费国产潢色一级| aaa毛片免费观看| 久久久久亚洲精品无码蜜桃| AA免费观看的1000部电影| 亚洲精品蜜夜内射| 国产午夜亚洲不卡| 4虎1515hh永久免费| 亚洲国产午夜精品理论片在线播放| 国产精品免费_区二区三区观看 | 亚洲国产成人久久| 四虎免费永久在线播放| a级毛片在线免费看| 亚洲六月丁香六月婷婷蜜芽| 国产成人高清精品免费软件| 国产免费一区二区三区不卡| 亚洲精品偷拍无码不卡av| 国产精品免费_区二区三区观看| 在线观看免费无码专区| 亚洲一日韩欧美中文字幕在线| 亚洲国产精品尤物YW在线观看| 人妻无码一区二区三区免费|