Duvida no mapeamento de OneToOne com chave composta no hibernate?

1 resposta
dijava

turma boa tarde, tenho 2 classes

Resposnabilidade - pk(usuario,setor,dataAdmissao)
Observacao

tenho 3 classes ai Responsabilidade,Observacao e ResponsabilidadePK. A relacao entre Responsabilidade e Observacao é de OneToOne, em responsabilidade eu faco a referencia assim

@OneToOne(mappedBy="responsabilidade") private Observacao observacao;

na classe Responsabilidade como eu colocaria as anotacoes ? eu estou colocando assim mas esta dando erro

@OneToOne @JoinColumns({ @JoinColumn(name="id_notaFiscal",referencedColumnName = "pk.notaFiscal"), @JoinColumn(name="id_setor",referencedColumnName = "pk.setor"), @JoinColumn(name="dataAtribuicaoRespon",referencedColumnName = "pk.dataAtribuicao") }) @Cascade(CascadeType.ALL) private Responsabilidade responsabilidade;

o erro q da é NullPointerException, nao entendi pq nao o de hibernateException???

Exception in thread "main" java.lang.NullPointerException
	at org.hibernate.cfg.AnnotationBinder.bindOneToOne(AnnotationBinder.java:1876)
	at org.hibernate.cfg.AnnotationBinder.processElementAnnotations(AnnotationBinder.java:1295)
	at org.hibernate.cfg.AnnotationBinder.fillComponent(AnnotationBinder.java:1671)
	at org.hibernate.cfg.AnnotationBinder.bindId(AnnotationBinder.java:1704)
	at org.hibernate.cfg.AnnotationBinder.processElementAnnotations(AnnotationBinder.java:1180)
	at org.hibernate.cfg.AnnotationBinder.bindClass(AnnotationBinder.java:710)
	at org.hibernate.cfg.AnnotationConfiguration.processArtifactsOfType(AnnotationConfiguration.java:452)
	at org.hibernate.cfg.AnnotationConfiguration.secondPassCompile(AnnotationConfiguration.java:268)
	at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1286)
	at testes.TesteHibernate.main(TesteHibernate.java:27)

1 Resposta

paulo1911

Olá amigo,

O que eu pude entender sobre o erro é que na verdade vc deve estar passando um valor null para alguma das chaves compostas, onde as chaves nao podem ser null, por questão de integridade dos dados. Vc não conseguiria recupera-los depois granado um pk null.

A exceptio esta relacionado ao atributo nulo por isso o java.lang.NullPointerException.

Caso contrario a exceptio seria de dentro do hibernate mesmo como HibernateException. OK!

Acredito que seja isso.

Tente debugar o codigo e verifique os valores da pk em tempo de execução!

fallow abraço

Criado 18 de janeiro de 2010
Ultima resposta 1 de dez. de 2010
Respostas 1
Participantes 2