這個異常就是說int類型是不能賦值為null的,而Integer可以。
在mysql資料庫中我們設定了int可以為null,則在我的modle類和對應檔就應該使用Integer類型。
這個和java5的自動拆箱裝箱還不是一回事。
Integer i = 3; //自動裝箱 int a = i + 3; //自動拆箱
拆箱時需要注意null 指標異常(NullPointerException)!
如: Integer x=null;
int y=x;
解決:
把原來的
<property name="cookie_id" type="int"> <column name="cookie_id" /> </property>
修改為
<property name="cookie_id" type="java.lang.Integer"> <column name="cookie_id" /> </property>
modle類也要改為:
private Integer cookie_id;
org.hibernate.PropertyAccessException: Null value was assigned to a property of primitive type setter of modle.Member.cookie_idorg.hibernate.property.BasicPropertyAccessor$BasicSetter.set(BasicPropertyAccessor.java:109)org.hibernate.tuple.entity.AbstractEntityTuplizer.setPropertyValues(AbstractEntityTuplizer.java:352)org.hibernate.tuple.entity.PojoEntityTuplizer.setPropertyValues(PojoEntityTuplizer.java:232)org.hibernate.persister.entity.AbstractEntityPersister.setPropertyValues(AbstractEntityPersister.java:3580)org.hibernate.engine.TwoPhaseLoad.initializeEntity(TwoPhaseLoad.java:152)org.hibernate.loader.Loader.initializeEntitiesAndCollections(Loader.java:877)org.hibernate.loader.Loader.doQuery(Loader.java:752)org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:259)org.hibernate.loader.Loader.doList(Loader.java:2232)org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2129)org.hibernate.loader.Loader.list(Loader.java:2124)org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:401)org.hibernate.hql.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:363)org.hibernate.engine.query.HQLQueryPlan.performList(HQLQueryPlan.java:196)org.hibernate.impl.SessionImpl.list(SessionImpl.java:1149)