在spring和hibernate整合的初步階段,還沒有編輯hibernate.cfg.xml這個檔案,只有乙個beans.xml檔案。此時遇到了乙個bug。
exception in thread "main" org.hibernate.exception.genericjdbcexception: could not insert: [com.test.model.user]
at org.hibernate.exception.sqlstateconverter.handlednonspecificexception(sqlstateconverter.j**a:126)
at org.hibernate.exception.sqlstateconverter.convert(sqlstateconverter.j**a:114)
at org.hibernate.exception.jdbcexceptionhelper.convert(jdbcexceptionhelper.j**a:66)
at org.hibernate.id.insert.abstractreturningdelegate.performinsert(abstractreturningdelegate.j**a:64)
at org.hibernate.persister.entity.abstractentitypersister.insert(abstractentitypersister.j**a:2176)
at org.hibernate.persister.entity.abstractentitypersister.insert(abstractentitypersister.j**a:2656)
at org.hibernate.action.entityidentityinsertaction.execute(entityidentityinsertaction.j**a:71)
at org.hibernate.engine.actionqueue.execute(actionqueue.j**a:279)
at org.hibernate.event.def.abstracts**eeventlistener.performs**eorreplicate(abstracts**eeventlistener.j**a:321)
at org.hibernate.event.def.abstracts**eeventlistener.performs**e(abstracts**eeventlistener.j**a:204)
at org.hibernate.event.def.abstracts**eeventlistener.s**ewithgeneratedid(abstracts**eeventlistener.j**a:130)
at org.hibernate.event.def.defaults**eorupdateeventlistener.s**ewithgeneratedorrequestedid(defaults**eorupdateeventlistener.j**a:210)
at org.hibernate.event.def.defaults**eeventlistener.s**ewithgeneratedorrequestedid(defaults**eeventlistener.j**a:56)
at org.hibernate.event.def.defaults**eorupdateeventlistener.entityistransient(defaults**eorupdateeventlistener.j**a:195)
at org.hibernate.event.def.defaults**eeventlistener.performs**eorupdate(defaults**eeventlistener.j**a:50)
at org.hibernate.event.def.defaults**eorupdateeventlistener.ons**eorupdate(defaults**eorupdateeventlistener.j**a:93)
at org.hibernate.impl.sessionimpl.fires**e(sessionimpl.j**a:563)
at org.hibernate.impl.sessionimpl.s**e(sessionimpl.j**a:551)
at org.hibernate.impl.sessionimpl.s**e(sessionimpl.j**a:547)
at com.test.dao.impl.userdaoimpl.s**e(userdaoimpl.j**a:33)
at com.test.service.userservice.add(userservice.j**a:30)
at com.test.action.useraction.main(useraction.j**a:23)
caused by: j**a.sql.sqlexception: field 'id' doesn't h**e a default value
at com.mysql.jdbc.sqlerror.createsqlexception(sqlerror.j**a:1055)
at com.mysql.jdbc.sqlerror.createsqlexception(sqlerror.j**a:956)
at com.mysql.jdbc.mysqlio.checkerrorpacket(mysqlio.j**a:3515)
at com.mysql.jdbc.mysqlio.checkerrorpacket(mysqlio.j**a:3447)
at com.mysql.jdbc.mysqlio.sendcommand(mysqlio.j**a:1951)
at com.mysql.jdbc.mysqlio.sqlquerydirect(mysqlio.j**a:2101)
at com.mysql.jdbc.connectionimpl.execsql(connectionimpl.j**a:2554)
at com.mysql.jdbc.preparedstatement.executeinternal(preparedstatement.j**a:1761)
at com.mysql.jdbc.preparedstatement.executeupdate(preparedstatement.j**a:2046)
at com.mysql.jdbc.preparedstatement.executeupdate(preparedstatement.j**a:1964)
at com.mysql.jdbc.preparedstatement.executeupdate(preparedstatement.j**a:1949)
at org.apache.commons.dbcp.delegatingpreparedstatement.executeupdate(delegatingpreparedstatement.j**a:102)
at org.hibernate.id.identitygenerator$getgeneratedkeysdelegate.executeandextract(identitygenerator.j**a:94)
at org.hibernate.id.insert.abstractreturningdelegate.performinsert(abstractreturningdelegate.j**a:57)
... 18 more
主要看第一行,是乙個genericjdbcexception型別錯誤,把錯誤在網上找了一下,大多數回答都是基於有了hibernate.cfg.xml這個檔案的情況下回答的,如:
原因:當使用bookid當主鍵的時候 使用hibernate 並且將其實體對映 設為自動增長時會報此異常,因為uuid為字元型的無法使用數字型的自動增長。
解決方法:只需要將在實體中刪除掉 問題即可解決。
分析了一下,是主鍵遞增方式的問題。我的user.j**a中有這麼乙個註解@generatedvalue(具體這個註解什麼意思,可以在網上查查,推薦個鏈結
user.j**a**如下(這裡是改之前的,多了乙個@generatedvalue)
importj**ax.persistence.entity;
import
j**ax.persistence.generatedvalue;
import
j**ax.persistence.id;
@entity
public
class
user
public
void setid(int
id)
public
string getname()
public
void
setname(string name)
}
只需要把@generatedvalue去掉就行了。
關於程式關於世界
首先,在學了1年多的軟體設計的基礎上,問下自己 程式是什麼?業務需求是什麼?程式有什麼用?什麼是演算法?什麼是資料庫?或許每個人的理解不同,會給出不同的答案。那麼自己的理解 程式是乙個讓計算機工作的流程,在程式寫好之後,計算機就會按照,程式設計師定義好流程在執行。其實很多時候,乙個程式的好壞,在於乙...
關於血液關於軟體
1 自然沉降法 將血袋垂直吊掛於4 2 冰箱內,使紅細胞自然下沉1 3d,或將血袋呈70 80 角立於冰箱,需用時,用一次性分漿器分出血漿,制得濃縮紅細胞。2 洗滌法 一般用生理鹽水反覆洗滌3 6次。經洗滌的紅細胞,除白細胞和血小板減少外,血漿蛋白也極少,紅細胞中殘存的血漿蛋白含量約為原總蛋白的1 ...
關於冷漠,關於愛情
我不知道為什麼今天又莫名其妙開始思考愛情這件事,隨之就解決了我一直無法面對冷漠這件事 被冷漠是我始終無法消化的一件事,每當遇見冷漠時,我總會覺得就像一團火把自己燒得面目全非,但對方卻毫無傷害。但我突然懂了,遇到冷漠時,體面的離開即可 在乎你的人一定會在你離開後,找到你跟你解釋為什麼 連解釋都來不及,...