使用struts+hibernate框架時,出現了以下錯誤:
org.hibernate.PropertyAccessException: Null value was assigned to a property of primitive type setter of com.xxx.publish.entity.Site.isUse
at org.hibernate.property.BasicPropertyAccessor$BasicSetter.set(BasicPropertyAccessor.java:109)
at org.hibernate.tuple.entity.AbstractEntityTuplizer.setPropertyValues(AbstractEntityTuplizer.java:352)
at org.hibernate.tuple.entity.PojoEntityTuplizer.setPropertyValues(PojoEntityTuplizer.java:232)
at org.hibernate.persister.entity.AbstractEntityPersister.setPropertyValues(AbstractEntityPersister.java:3580)
at org.hibernate.engine.TwoPhaseLoad.initializeEntity(TwoPhaseLoad.java:152)
at org.hibernate.loader.Loader.initializeEntitiesAndCollections(Loader.java:877)
at org.hibernate.loader.Loader.doQuery(Loader.java:752)
at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:259)
at org.hibernate.loader.Loader.doList(Loader.java:2232)
at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2129)
at org.hibernate.loader.Loader.list(Loader.java:2124)
at org.hibernate.loader.criteria.CriteriaLoader.list(CriteriaLoader.java:118)
該問題產生的原因是數據庫中對應的字段值爲NULL,這裏我的數據庫中is_use字段是null
解決方案
- 首先要將數據庫中該字段爲null 的記錄設置默認值。避免程序出錯。
- 數據庫中設置使用默認值,當保存該字段沒有值時,將默認值設置進來。
- 或者將javabean對象中對應的屬性isUse由基本類型boolean修改爲Boolean。