Collection no hibernate

3 respostas
D

Ligacoes lig = new Ligacoes(1); ... //sets dele; ArrayList telefo = new ArrayList<Telefones>(); Telefones tel = Telefones.create(1,1); //esta funcionando carrega o telefone q ja esta salvo no banco. tel.setligacoes(lig); telefo.add(tel); lig.setTelefones(telefo); Gerencia.inclui(lig); //salva o objeto ligação no banco;
dá o seguinte erro:

Exception in thread "main" java.lang.ClassCastException: java.util.ArrayList at org.hibernate.type.SetType.wrap(SetType.java:39) at org.hibernate.event.def.WrapVisitor.processArrayOrNewCollection(WrapVisitor.java:84) at org.hibernate.event.def.WrapVisitor.processCollection(WrapVisitor.java:51) at org.hibernate.event.def.AbstractVisitor.processValue(AbstractVisitor.java:101) at org.hibernate.event.def.WrapVisitor.processValue(WrapVisitor.java:98) at org.hibernate.event.def.AbstractVisitor.processEntityPropertyValues(AbstractVisitor.java:55) at org.hibernate.event.def.AbstractSaveEventListener.visitCollectionsBeforeSave(AbstractSaveEventListener.java:360) at org.hibernate.event.def.AbstractSaveEventListener.performSaveOrReplicate(AbstractSaveEventListener.java:269) at org.hibernate.event.def.AbstractSaveEventListener.performSave(AbstractSaveEventListener.java:180) at org.hibernate.event.def.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:121) at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:186) at org.hibernate.event.def.DefaultSaveEventListener.saveWithGeneratedOrRequestedId(DefaultSaveEventListener.java:33) at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:175) at org.hibernate.event.def.DefaultSaveEventListener.performSaveOrUpdate(DefaultSaveEventListener.java:27) at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:70) at org.hibernate.impl.SessionImpl.fireSave(SessionImpl.java:535) at org.hibernate.impl.SessionImpl.save(SessionImpl.java:523) at org.hibernate.impl.SessionImpl.save(SessionImpl.java:519)
alguém sabe o q eu faço pra resolver isto?

3 Respostas

D

por favor, ng sabe como salvar usando collections, passando arraylist para o hibernate?
da o erro de cast arraylist, é erro no código q derepente eu tenho q fazer algo q não fiz ou no mapemanto do hibernate?

D

bom acho q o erro acima eu arrumei, mas agora entrou em outro.
erro:

org.hibernate.id.IdentifierGenerationException: ids for this class must be manually assigned before calling save(): jdo.Telefones at org.hibernate.id.Assigned.generate(Assigned.java:33) at org.hibernate.event.def.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:98) at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:186) at org.hibernate.event.def.DefaultSaveEventListener.saveWithGeneratedOrRequestedId(DefaultSaveEventListener.java:33) at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:175) at org.hibernate.event.def.DefaultSaveEventListener.performSaveOrUpdate(DefaultSaveEventListener.java:27) at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:70) at org.hibernate.impl.SessionImpl.fireSave(SessionImpl.java:535) at org.hibernate.impl.SessionImpl.save(SessionImpl.java:523) at org.hibernate.impl.SessionImpl.save(SessionImpl.java:519)
ja tive um erro parecido e arrumei fazendo os metodos corretos na classe da chave composta, só q no caso eu estava salvando só a classe q tem a chave composta, agora quem esta salvando a classe com cheve composta é outra classe (Ligacao) q tem uma colection de (Telefones) q é a minha classe com chave composta. será q conseguiram entender?

P

a sua PK não é auto-increment certo? então assim sendo, vc tem q settar o valor dela antes de chamar o método save()

Criado 10 de janeiro de 2007
Ultima resposta 12 de jan. de 2007
Respostas 3
Participantes 2