Erro com hibernate

7 respostas
Hammer

bem, apareceu um erro q eu nunk vi e nao estou conseguindo solucionar, o erro esta ai, alguem sabe oq eh?

Exception in thread "AWT-EventQueue-0" org.hibernate.PropertyAccessException: Null value was assigned to a property of primitive type setter of entity.Servicos.sequencia at org.hibernate.property.BasicPropertyAccessor$BasicSetter.set(BasicPropertyAccessor.java:85) at org.hibernate.tuple.entity.AbstractEntityTuplizer.setPropertyValues(AbstractEntityTuplizer.java:337) at org.hibernate.tuple.entity.PojoEntityTuplizer.setPropertyValues(PojoEntityTuplizer.java:200) at org.hibernate.persister.entity.AbstractEntityPersister.setPropertyValues(AbstractEntityPersister.java:3499) at org.hibernate.engine.TwoPhaseLoad.initializeEntity(TwoPhaseLoad.java:129) at org.hibernate.loader.Loader.initializeEntitiesAndCollections(Loader.java:842) at org.hibernate.loader.Loader.doQuery(Loader.java:717) at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:224) at org.hibernate.loader.Loader.doList(Loader.java:2144) at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2028) at org.hibernate.loader.Loader.list(Loader.java:2023) at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:393) at org.hibernate.hql.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:338) at org.hibernate.engine.query.HQLQueryPlan.performList(HQLQueryPlan.java:172) at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1121) at org.hibernate.impl.QueryImpl.list(QueryImpl.java:79) at dao.ServicosHibernateDAO.consultarTabela(ServicosHibernateDAO.java:70) at dao.ServicosHibernateDAO.consultarTabelaCarroCliente(ServicosHibernateDAO.java:114) at gui.TabelaServicos.<init>(TabelaServicos.java:54) at gui.TabelaCarros$Eventos$1.run(TabelaCarros.java:308) at java.awt.event.InvocationEvent.dispatch(Unknown Source) at java.awt.EventQueue.dispatchEvent(Unknown Source) at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.run(Unknown Source) Caused by: java.lang.IllegalArgumentException at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.hibernate.property.BasicPropertyAccessor$BasicSetter.set(BasicPropertyAccessor.java:42) ... 27 more

7 Respostas

fsquadro

Hammer,

Coloque o trecho de código, que está dando este erro.

Hammer

bem, ele da erro ao fazer essa consulta ai:

public List consultarTabela() { session = ConnectDB.getInstance(); List list = session.createQuery("from Servicos as servicos").list(); return list; }

tava funcionando normalmente, ate acrescentar dois campos, q sao caixa e sequencia, respectivamentem um String e um int.

G

posta o mapeamento de serviços…

[]´s

Geraldo

Hammer

ta ai:

package entity;

import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToOne;
import javax.persistence.Table;
import entity.Carros;
import entity.Cheque;

@Entity
@Table(name = "servicos")
public class Servicos implements java.io.Serializable {
	
	private int ID;
	private float preco;
	private String data2;
	private String obs;
	private String restricao;
	private String financeira;
	private String dataRecibo;
	private float taxas;
	private float desconto;
	private Carros carro;
	private Cliente cliente;
	private Lojas loja;
	private float avista;
	private float acheque;
	private float cartao;
	private float promissoria;
	private String caixa;
	private int sequencia;
	
	public Servicos() {
		
	}
	
	@Id
	@GeneratedValue
	@Column(name = "codigo")
	public int getID() {
		return this.ID;
	}
	
	public void setID(int ID) {
		this.ID = ID;
	}
	
	@Column(name = "preco")
	public float getPreco() {
		return this.preco;
	}
	
	public void setPreco(float preco) {
		this.preco = preco;
	}
	
	@Column(name = "data_2")
	public String getData2() {
		return this.data2;
	}
	
	public void setData2(String data2) {
		this.data2 = data2;
	}
	
	@Column(name = "obs")
	public String getObs() {
		return this.obs;
	}
	
	public void setObs(String obs) {
		this.obs = obs;
	}
	
	@Column(name = "restricao")
	public String getRestricao() {
		return this.restricao;
	}
	
	public void setRestricao(String restricao) {
		this.restricao = restricao;
	}
	
	@Column(name = "financeira")
	public String getFinanceira() {
		return this.financeira;
	}
	
	public void setFinanceira(String financeira) {
		this.financeira = financeira;
	}
	
	@Column(name = "dataRecibo")
	public String getDataRecibo() {
		return this.dataRecibo;
	}
	
	public void setDataRecibo(String dataRecibo) {
		this.dataRecibo = dataRecibo;
	}	
	
	@Column(name = "taxas")
	public float getTaxas() {
		return this.taxas;
	}
	
	public void setTaxas(float taxas) {
		this.taxas = taxas;
	}
	
	@Column(name = "desconto")
	public float getDesconto() {
		return this.desconto;
	}
	
	public void setDesconto(float desconto) {
		this.desconto = desconto;
	}
	
	@ManyToOne(cascade = CascadeType.ALL)
	@JoinColumn(name = "carros_codigo")
	public Carros getCarro() {
		return this.carro;
	}
	
	public void setCarro(Carros carro) {
		this.carro = carro;
	}
	
	@Column(name = "dinheiro")
	public float getAvista() {
		return this.avista;
	}
	
	public void setAvista(float avista) {
		this.avista = avista;
	}
	
	@Column(name = "cheque")
	public float getAcheque() {
		return this.acheque;
	}
	
	public void setAcheque(float acheque) {
		this.acheque = acheque;
	}
	
	@Column(name = "cartao")
	public float getCartao() {
		return this.cartao;
	}
	
	public void setCartao(float cartao) {
		this.cartao = cartao;
	}
	
	@Column(name = "promissoria")
	public float getPromissoria() {
		return this.promissoria;
	}
	
	public void setPromissoria(float promissoria) {
		this.promissoria = promissoria;
	}
	
	@ManyToOne(cascade = CascadeType.ALL)
	@JoinColumn(name = "cliente_codigo")
	public Cliente getCliente() {
		return this.cliente;
	}
	
	public void setCliente(Cliente cliente) {
		this.cliente = cliente;
	}
	
	@ManyToOne(cascade = CascadeType.ALL)
	@JoinColumn(name = "lojas_codigo")
	public Lojas getLoja() {
		return this.loja;
	}
	
	public void setLoja(Lojas loja) {
		this.loja = loja;
	}
	
	@Column(name = "caixa")
	public String getCaixa() {
		return this.caixa;
	}
	
	public void setCaixa(String caixa) {
		this.caixa = caixa;
	}
	
	@Column(name = "sequencia")
	public int getSequencia() {
		return this.sequencia;
	}
	
	public void setSequencia(int sequencia) {
		this.sequencia = sequencia;
	}
}
plentz

Tente transformar seu int em Integer e veja se o problema continua.

Hammer

aparentemente eu corrigi esse problema, oq aconteceu foi q ao recuperar os objetos servicos no banco de dados ele estava dando erro ao recuperar a coluna sequencia q era integer e continha o valor null, colokei zero em todos e recupera normalmente agora, nao sei pq mas funciona assim.

dinegri

Olá estava com o mesmo problema, isso deve ter acontecido pelo fato de você não ter atribuido um valor padrão a seu tipo primitivo, no banco provavelmente o valor dessa coluna esta sendo atribuida para NULL, então
quando você tentava recuperar os valores dessa coluna o hibernate tentava
recuperar como NULL um atributo do tipo primitivo.

A solução é fazer como você citou acima, mas caso continue dando o problema será necessário que você atribua os valores padrão direto no banco.

Criado 11 de junho de 2007
Ultima resposta 14 de jun. de 2007
Respostas 7
Participantes 5