Boa tarde tenho uma classe de entidade com alguns campos int e short , mas a tabela a que ela se refere tem alguns campos com valor null , então ao carregar os dados da tabela para a tela , sempre me dá este erro:
Caused by: org.hibernate.PropertyAccessException: Null value was assigned to a property of primitive type setter of model.Dser.dserusr
at org.hibernate.property.DirectPropertyAccessor$DirectSetter.set(DirectPropertyAccessor.java:143)
at org.hibernate.tuple.entity.AbstractEntityTuplizer.setPropertyValues(AbstractEntityTuplizer.java:583)
at org.hibernate.tuple.entity.PojoEntityTuplizer.setPropertyValues(PojoEntityTuplizer.java:229)
at org.hibernate.persister.entity.AbstractEntityPersister.setPropertyValues(AbstractEntityPersister.java:3847)
at org.hibernate.engine.TwoPhaseLoad.initializeEntity(TwoPhaseLoad.java:152)
at org.hibernate.loader.Loader.initializeEntitiesAndCollections(Loader.java:982)
at org.hibernate.loader.Loader.doQuery(Loader.java:857)
at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:274)
at org.hibernate.loader.Loader.doList(Loader.java:2533)
at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2276)
at org.hibernate.loader.Loader.list(Loader.java:2271)
at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:452)
at org.hibernate.hql.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:363)
at org.hibernate.engine.query.HQLQueryPlan.performList(HQLQueryPlan.java:196)
at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1268)
at org.hibernate.impl.QueryImpl.list(QueryImpl.java:102)
at org.hibernate.ejb.QueryImpl.getResultList(QueryImpl.java:246)
... 62 more
Caused by: java.lang.IllegalArgumentException: Can not set short field model.Dser.dserusr to null value
at sun.reflect.UnsafeFieldAccessorImpl.throwSetIllegalArgumentException(Unknown Source)
at sun.reflect.UnsafeFieldAccessorImpl.throwSetIllegalArgumentException(Unknown Source)
at sun.reflect.UnsafeShortFieldAccessorImpl.set(Unknown Source)
at java.lang.reflect.Field.set(Unknown Source)
at org.hibernate.property.DirectPropertyAccessor$DirectSetter.set(DirectPropertyAccessor.java:139)
... 78 more
Ok o erro eu já sei que é porque campos primitivos não aceitão null , e que para resolver é so trocar os campos primitivos por wrappers.Mas eu não gostaria de usar os wrappers , principalmente pela inicialização dos valores padrões.Então nesta mesma tabela fiz um teste com o “Páginas JSF de classe de entidade” do Netbeans , e nele conseguiu carregar os dados sem dar erro ! Alguem sabe como fazer um tratamento para que o hibernate popule estes dados que vem null do banco de dados para “” ou 0 ?Tentei tratar no get ou set , mas paresse que o erro vem antes disso.Obrigado!