Boa tarde pessoal
estou com problema ao persistir uma classe que tem um ElementCollection de Enum. A propriedade é a classificacoes (Set<Classificacao> classificacoes)
da o erro:
Caused by: java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Enum
at org.hibernate.type.EnumType.nullSafeSet(EnumType.java:123)
at org.hibernate.type.CustomType.nullSafeSet(CustomType.java:155)
at org.hibernate.persister.collection.AbstractCollectionPersister.writeElement(AbstractCollectionPersister.java:811)
at org.hibernate.persister.collection.AbstractCollectionPersister.recreate(AbstractCollectionPersister.java:1201)
at org.hibernate.action.internal.CollectionRecreateAction.execute(CollectionRecreateAction.java:58)
at org.hibernate.engine.spi.ActionQueue.execute(ActionQueue.java:362)
at org.hibernate.engine.spi.ActionQueue.executeActions(ActionQueue.java:354)
at org.hibernate.engine.spi.ActionQueue.executeActions(ActionQueue.java:279)
at org.hibernate.event.internal.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:326)
at org.hibernate.event.internal.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:52)
at org.hibernate.internal.SessionImpl.flush(SessionImpl.java:1127)
at org.hibernate.ejb.AbstractEntityManagerImpl.flush(AbstractEntityManagerImpl.java:974)
at br.com.tebosoftware.dao.AbstractDAO.gravar(AbstractDAO.java:55)
... 44 more
A classe é esta abaixo:
Pessoa.java
package br.com.tebosoftware.modelo.pessoa;
import br.com.tebosoftware.modelo.ValidacaoException;
import br.com.tebosoftware.modelo.acesso.Permissao;
import br.com.tebosoftware.modelo.acesso.Usuario;
import br.com.tebosoftware.modelo.endereco.Endereco;
import br.com.tebosoftware.util.Util;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import javax.persistence.*;
/**
*
* @author thales @data 05/03/2012
*/
@Entity
public class Pessoa extends Usuario {
public static final int LENGTH_RAZAO_SOCIAL = 50;
public static final int LENGTH_FANTASIA = 50;
public static final int LENGTH_CPF = 11;
public static final int LENGTH_CNPJ = 14;
public static final int LENGTH_RG = 20;
public static final int LENGTH_INSCRICAO_ESTADUAL = 20;
//é nesta propriedade que está dando o erro.
@ElementCollection(fetch = FetchType.LAZY, targetClass = Classificacao.class)
@Enumerated(EnumType.STRING)
@Column(name = "classificacao", length = 20)
private Set<Classificacao> classificacoes = new HashSet<Classificacao>();
@Column(length = LENGTH_RAZAO_SOCIAL)
private String razaoSocial;
@Column(length = LENGTH_FANTASIA)
private String fantasia;
@ManyToOne(fetch = FetchType.EAGER, optional = false, cascade = {CascadeType.MERGE})
private Endereco endereco;
private int numero;
@Enumerated(EnumType.STRING)
@Column(length = 20)
private TipoPessoa tipoPessoa = TipoPessoa.FISICA;
@AttributeOverride(name = "valor", column =
@Column(name = "cpf", length = LENGTH_CPF))
private Cpf cpf;
@AttributeOverride(name = "valor", column =
@Column(name = "cnpj", length = LENGTH_CNPJ))
private Cnpj cnpj;
@Column(name = "rg", length = LENGTH_RG)
private String rg;
@Column(name = "inscricaoEstadual", length = LENGTH_INSCRICAO_ESTADUAL)
private String inscricaoEstadual;
@AttributeOverride(name = "valor", column =
@Column(name = "email"))
private Email email;
@ElementCollection(fetch = FetchType.LAZY, targetClass = Telefone.class)
@AttributeOverride(name = "valor", column =
@Column(name = "telefone", length = 10))
private List<Telefone> telefones;
private boolean ativo = true;
@ManyToMany
private List<Permissao> permissoes;
//getters and setters, equals e hashcode
}
desde já agradeço