錯誤信息:ids for this class must be manually assigned before calling save(): sample.db.Completedsample
原因分析:從字面上理解的意思是,在save之前,必須手動指定id,其中id的;
解決辦法:將主鍵設為自增,原先需要主鍵表示的數據,重新設置一個鍵。此時主鍵id的 ;之前主鍵沒有設為自增,將id的generator的class設為increment也是同樣的效果。
資料:元素映射了相應數據庫表的主鍵字段,對其子元素,其中class的取值可以為increment、identity、sequence、hilo、native……等,更多的可參考hibernate參考文檔,一般取其值為native ;ps:我用的是MySQL,取值為native時也會報錯。
http://blog.163.com/starfish_yang/blog/static/686256852010102785912790/ 這個blog中有每種class值的詳解。
總結:還是沒有弄清楚為何會報錯,開始的時候數據庫中id不是自增的,程序中也setId了,出現了如上的報錯信息。使用main函數測試,非自增的情況下,是可以直接指定id值的,然后,使用網頁測試,也是可以的,這個問題沒有能夠重現。