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

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

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

    隨筆 - 147  文章 - 71  trackbacks - 0
    <2009年1月>
    28293031123
    45678910
    11121314151617
    18192021222324
    25262728293031
    1234567

    常用鏈接

    留言簿(1)

    隨筆分類(146)

    隨筆檔案(147)

    文章分類(28)

    文章檔案(28)

    喜歡的Blog

    搜索

    •  

    最新評論

    閱讀排行榜

    評論排行榜

    1.      org/hibernate/criterion/Criterion

    工程布署的時候沒有加入hibernate3jar包,這個jar不是默認加入的,要在myeclipse -> add hibernate capabilities... ->選擇copy checked libraries to project folder and add to build-path否則工程布署的時候無論如何是不會有hibernate的包的。

    2.      org.hibernate.id.IdentifierGenerationException

    當出現(xiàn)org.hibernate.id.IdentifierGenerationException: ids for this class must be manually assigned before calling save():異常時,一般是因為<id>元素配置不正確,<id>元素缺少其子元素<generator></generator>的配置引起。

    解決方案:<id>元素映射了相應數(shù)據(jù)庫表的主鍵字段,對其子元素<generator class="">,其中class的取值可以為incrementidentity、sequence、hilo、native……等,更多的可參考hibernate參考文檔,一般取其值為native

    generator class="assigned“而類型type="java.lang.Integer”如果主鍵時自動增長的Int型,把assigned改成自動增長的Identity,assigned是自動增長的varchar型的。

    3.      org.hibernate.PropertyValueException

    數(shù)據(jù)庫的表里字段設有not null,執(zhí)行dao.delete(op); 時出現(xiàn)異常:

    org.hibernate.PropertyValueException: not-null property references a null or transient value: com.easyfile.util. Operators. operatorid

    OperatorsDAO.javaprivate static Logger logger = Logger.getLogger(AdminAction.class);這句并沒有顯式地自動加載Id過來,還是需要dao.getSession().load(op,op.getOperatorid());來加載id。完整的代碼如下:

    String operatorid = request.getParameter("delOperatorid");

    OperatorsDAO dao=new OperatorsDAO();

    Transaction tran=dao.getSession().beginTransaction();

    Operators op = new Operators();

    op.setOperatorid(Integer.parseInt(operatorid));

    dao.getSession().load(op,op.getOperatorid());

    dao.delete(op);

    tran.commit();

    dao.getSession().close();

    4.      null id in entry (don't flush the Session after an exception occurs)

    產生該異常信息有2種可能:

    Ø         我們沒有為數(shù)據(jù)中的非空字段設置值。如果我們在通過Hibernate增加一條記錄的時候我們必須顯式的通過setXxx方法為該屬性賦值(/默認值)。因為在保存之前Hibernate會檢查該非空字段對應的實體屬性是否為空。如果不想顯式賦值的話,我們可以通過xxx.hbm.xml配置文件來實現(xiàn),也就是在配置文件中給出該字段的默認值。或者在你的類中設置默認值就行了。注意的是rename數(shù)據(jù)庫保留字段。

    Ø         hibernate的配置文件中,有的元素有unique屬性的配置,它在數(shù)據(jù)添加時并不起任何作用,只在從hbm文件生成ddl語句時才有作用,并不會在運行時校驗數(shù)據(jù)。防止數(shù)據(jù)重復添加,要么在數(shù)據(jù)庫上建立唯一索引(數(shù)據(jù)庫保證),要么在插入時提前校驗(人為保證)。當然,多數(shù)情況下是兩者結合。

    5.      org.hibernate.hql.ast.QuerySyntaxException

    Ø         持久類寫錯了,要不就是寫成了數(shù)據(jù)庫表名

    Ø         hibernate3.0不支持select中嵌套查詢,據(jù)說from中也不行,只支持where中嵌套查詢,好像3.1支持了select中嵌套

    Ø         sql語句中字段是用了保留關鍵字

    posted on 2009-01-21 20:01 飛翔天使 閱讀(5068) 評論(1)  編輯  收藏 所屬分類: Hibernate

    FeedBack:
    # re: 【Hibernate總結系列】常見異??偨Y 2013-07-25 09:46 巍峨巍峨
    黨的政策哈珀  回復  更多評論
      

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


    網站導航:
     
    主站蜘蛛池模板: 亚洲av成人一区二区三区在线观看| 国产成人精品免费视| 亚洲av手机在线观看| 日韩欧美亚洲国产精品字幕久久久| 在线不卡免费视频| 亚洲heyzo专区无码综合| 女人被男人桶得好爽免费视频| 亚洲一卡一卡二新区无人区| 成年男女男精品免费视频网站| 亚洲youwu永久无码精品| 日本免费一二区在线电影| 黄页视频在线观看免费| 又粗又大又长又爽免费视频| 免费高清A级毛片在线播放| 亚洲欧洲国产成人综合在线观看 | 久久国产高潮流白浆免费观看| 免费无码精品黄AV电影| 亚洲熟妇av午夜无码不卡| 国产无遮挡裸体免费视频| 国产黄色片免费看| 亚洲国产一区国产亚洲| 日韩在线免费视频| 国产亚洲一卡2卡3卡4卡新区 | 18国产精品白浆在线观看免费| 久久久久亚洲AV无码专区网站| 在线观看片免费人成视频无码| 亚洲综合色丁香麻豆| 国产美女精品久久久久久久免费 | 亚洲乱码国产一区三区| 最近高清中文字幕免费| 亚洲熟伦熟女专区hd高清| JLZZJLZZ亚洲乱熟无码| 99视频免费播放| 久久亚洲中文字幕无码| 国产亚洲精品a在线无码| 免费观看的毛片大全| 一级毛片免费视频网站| 亚洲成a人片7777| 亚洲免费日韩无码系列 | 国产精品视_精品国产免费| 国产一区二区免费|