求救:加了前綴屬性就無(wú)法運(yùn)行
上面是我的代碼
加了前綴屬性就無(wú)法運(yùn)行,注釋掉就正常
我是跟著老師的視頻走的,其他代碼一致
求大神拯救
ps:加了前綴屬性后
最后給一個(gè)
ERROR: HHH000099: an assertion failure occured (this may indicate a bug in Hibernate, but is more likely due to unsafe use of the session): org.hibernate.AssertionFailure: null id in pojo.Student entry (don't flush the Session after an exception occurs)
啥意思?
我手動(dòng)設(shè)置id=1不行,id為null不行,不設(shè)置id也不行
不要前綴屬性就咋都行(設(shè)置id沒(méi)有用,自動(dòng)增長(zhǎng)的)
package?pojo; import?java.util.Date; public?class?Student?implements?java.io.Serializable?{ //?Fields private?int?id; private?String?name; private?String?gender; private?Date?birthday; private?String?address; //?Constructors /**?default?constructor?*/ public?Student()?{ } /**?full?constructor?*/ public?Student(String?name,?String?gender,?Date?birthday,?String?address)?{ this.name?=?name; this.gender?=?gender; this.birthday?=?birthday; this.address?=?address; } //?Property?accessors public?Integer?getId()?{ return?this.id; } public?void?setId(Integer?id)?{ this.id?=?id; } public?String?getName()?{ return?this.name; } public?void?setName(String?name)?{ this.name?=?name; } public?String?getGender()?{ return?this.gender; } public?void?setGender(String?gender)?{ this.gender?=?gender; } public?Date?getBirthday()?{ return?this.birthday; } public?void?setBirthday(Date?birthday)?{ this.birthday?=?birthday; } public?String?getAddress()?{ return?this.address; } public?void?setAddress(String?address)?{ this.address?=?address; } /*?(non-Javadoc) ?*?@see?java.lang.Object#toString() ?*/ @Override public?String?toString()?{ return?"Student?[id="?+?id?+?",?name="?+?name?+?",?gender="?+?gender +?",?birthday="?+?birthday?+?",?address="?+?address?+?"]"; } } 上面是類(lèi) 下面是映射 <?xml?version="1.0"?encoding="utf-8"?> <!DOCTYPE?hibernate-mapping?PUBLIC?"-//Hibernate/Hibernate?Mapping?DTD?3.0//EN" "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"> <!--? ????Mapping?file?autogenerated?by?MyEclipse?Persistence?Tools --> <hibernate-mapping> ????<class?name="pojo.Student"?table="student"?catalog="xiele007"> ????????<id?name="id"?type="java.lang.Integer"> ????????????<column?name="id"?/> ????????????<generator?class="native"?/> ????????</id> ????????<property?name="name"?type="java.lang.String"> ????????????<column?name="name"?length="16"?/> ????????</property> ????????<property?name="gender"?type="java.lang.String"> ????????????<column?name="gender"?length="32"?/> ????????</property> ????????<property?name="birthday"?type="java.util.Date"> ????????????<column?name="birthday"?length="10"?/> ????????</property> ????????<property?name="address"?type="java.lang.String"> ????????????<column?name="address"?/> ????????</property> ????</class> </hibernate-mapping>
2016-05-31
?你這個(gè)問(wèn)題過(guò)去好久了,是因?yàn)槟愕闹麈I生成方式有問(wèn)題,Studen的MAP里面有一句
<generator class="native" />換成?<generator class="assigned" />就可以了
-----Hibernate?的<generator?class="native"></generator>的不同屬性含義------
1) assigned
主鍵由外部程序負(fù)責(zé)生成,無(wú)需Hibernate參與。
2) hilo
通過(guò)hi/lo 算法實(shí)現(xiàn)的主鍵生成機(jī)制,需要額外的數(shù)據(jù)庫(kù)表保存主
鍵生成歷史狀態(tài)。
3) seqhilo
與hilo 類(lèi)似,通過(guò)hi/lo 算法實(shí)現(xiàn)的主鍵生成機(jī)制,只是主鍵歷史
狀態(tài)保存在Sequence中,適用于支持Sequence的數(shù)據(jù)庫(kù),如Oracle。
4) increment
主鍵按數(shù)值順序遞增。此方式的實(shí)現(xiàn)機(jī)制為在當(dāng)前應(yīng)用實(shí)例中維持
一個(gè)變量,以保存著當(dāng)前的最大值,之后每次需要生成主鍵的時(shí)候
將此值加1作為主鍵。
這種方式可能產(chǎn)生的問(wèn)題是:如果當(dāng)前有多個(gè)實(shí)例訪問(wèn)同一個(gè)數(shù)據(jù)
庫(kù),那么由于各個(gè)實(shí)例各自維護(hù)主鍵狀態(tài),不同實(shí)例可能生成同樣
的主鍵,從而造成主鍵重復(fù)異常。因此,如果同一數(shù)據(jù)庫(kù)有多個(gè)實(shí)
例訪問(wèn),此方式必須避免使用。
5) identity
采用數(shù)據(jù)庫(kù)提供的主鍵生成機(jī)制。如DB2、SQL Server、MySQL
中的主鍵生成機(jī)制。
6) sequence
采用數(shù)據(jù)庫(kù)提供的sequence 機(jī)制生成主鍵。如Oralce 中的
Sequence。
7) native
由Hibernate根據(jù)底層數(shù)據(jù)庫(kù)自行判斷采用identity、hilo、sequence
其中一種作為主鍵生成方式。
8) uuid.hex
由Hibernate基于128 位唯一值產(chǎn)生算法生成16 進(jìn)制數(shù)值(編碼后
以長(zhǎng)度32 的字符串表示)作為主鍵。
9) uuid.string
與uuid.hex 類(lèi)似,只是生成的主鍵未進(jìn)行編碼(長(zhǎng)度16)。在某些
數(shù)據(jù)庫(kù)中可能出現(xiàn)問(wèn)題(如PostgreSQL)。
10) foreign
使用外部表的字段作為主鍵。
一般而言,利用uuid.hex方式生成主鍵將提供最好的性能和數(shù)據(jù)庫(kù)平臺(tái)適
應(yīng)性。
2016-05-17
同求,一樣的問(wèn)題
2016-02-20
你那個(gè)添加前綴的那個(gè)語(yǔ)句可能一定要加hibernate吧,不能用xxxx表示。因?yàn)樘砑忧熬Y的這個(gè)前綴是數(shù)據(jù)庫(kù)的前綴。
2015-09-07
你的pojo類(lèi)呢 ? 讓我看下