<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


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


    網站導航:
     
    主站蜘蛛池模板: 久久久久国产亚洲AV麻豆| 免费无码又爽又刺激高潮| 亚洲国产精品国自产拍AV| 又硬又粗又长又爽免费看| 免费一级毛片免费播放| 美女视频黄.免费网址| 亚洲精品综合久久| 黄视频在线观看免费| 亚洲毛片αv无线播放一区| a级毛片免费全部播放| 亚洲成AV人片天堂网无码| 99re6免费视频| 亚洲日本va在线观看| 成人免费视频88| 美女视频黄视大全视频免费的| 高清在线亚洲精品国产二区| 抽搐一进一出gif免费视频| 日本亚洲成高清一区二区三区 | 亚洲av区一区二区三| 人禽伦免费交视频播放| 亚洲日韩精品一区二区三区| 色欲国产麻豆一精品一AV一免费| 亚洲美女自拍视频| 日韩免费视频一区| aa在线免费观看| 亚洲大香人伊一本线| 国产高清视频在线免费观看| 亚洲免费日韩无码系列| 亚洲邪恶天堂影院在线观看| 黄网站免费在线观看| 国产一区二区免费| 亚洲成在人线aⅴ免费毛片| 色综合久久精品亚洲国产| 亚洲性色AV日韩在线观看| 国产色爽免费视频| 免费黄网站在线看| 亚洲天然素人无码专区| 亚洲精品亚洲人成人网| 黄瓜视频影院在线观看免费| 在线播放免费人成视频网站| 亚洲欧洲精品一区二区三区|