關於hibernate中主鍵自增一字段 – JAVA編程語言程序開發技術文章

報錯內容:
引用

org.hibernate.id.IdentifierGenerationException: ids for this class must be manually assigned before calling save(): ***(POJO類,及持久化類名)

分析及解決:

你要操作的數據表中的id(即主鍵)的類型設置成瞭“自動增長類型”,而在你的

hibernate.cfg.xml中,id的生成方式是assigned,即
Java代碼 
<id name="id" type="integer"> 
            <column name="id" /> 
            <generator class="assigned" /> 
           </id> 

這種搭配是矛盾的!

主鍵的assigned生成方式由程序自動生成表的主鍵,即在你的測試程序中要調用setId()方法,且必

須在調用save()前調用(或者說在調用save()前必須指定id,其實就是說,主鍵值不能為空!)。
把主鍵的生成方式改為native,它的特征是能夠根據底層數據庫自動選擇主鍵生成方式。

發佈留言