Construtor enum privado - org.hibernate.InstantiationException: No default constructor for entity
7 respostas
S
SadNess
galera
tenho uma entity que é um enum. segue ela abaixo
@EntitypublicenumSubListaimplementsSerializable{DISQUETE_CONSULTA("Disquete Consulta FCC"),LISTA_ALFA_COLEGIO("Lista alfa colégio"),LISTA_ALFA_POSTO("Lista alfa posto"),LISTA_CADASTRO("Lista de Cadastro (Alfa geral)"),LISTA_PRESENCA("Lista de presenca com espaço para assinatura"),LISTA_SALA_DUPLO_LINGUA("Lista de sala - fomato duplo (c/ mist. de língua)"),LISTA_SALA_DUPLO_HORARIO("Lista de sala - formato duplo (com horário)"),LISTA_SALA_SIMPLES("Lista de sala - formato simples"),RELATORIO_INSCRICAO("Relatório com nº de inscrição e tipo de prova"),RELATORIO_RESERVA_PROVAS("Relatório de reserva de provas");privateStringdescricao;privateStringespecificacao;@IdprivateStringidSublista;SubLista(Stringdescricao){this.descricao=descricao;}
o problema é que o hibernate da um erro quando eu tento carregar esta Entity do banco de dados
eu recebo o seguinte erro:
cara
eu omiti os get´s e set´s pra ficar + simples de ler
E esse meu enum tem variáveis de instância, por isso acredito que ele precisa ser um Entity
E mesmo que eu coloque o construtor vazio como private, continua dando o mesmo erro. Imagino que é porque o Hibernate não consegue acessar ele
to numa sinuca =[
segue a classe completa pra esclarecer mais
packagebeans.beansListas.model;importjava.io.Serializable;importjavax.persistence.Entity;importjavax.persistence.Id;importjavax.persistence.Transient;importorg.apache.commons.fileupload.FileItem;@EntitypublicenumSubListaimplementsSerializable{DISQUETE_CONSULTA("Disquete Consulta FCC"),LISTA_ALFA_COLEGIO("Lista alfa colégio"),LISTA_ALFA_POSTO("Lista alfa posto"),LISTA_CADASTRO("Lista de Cadastro (Alfa geral)"),LISTA_PRESENCA("Lista de presenca com espaço para assinatura"),LISTA_SALA_DUPLO_LINGUA("Lista de sala - fomato duplo (c/ mist. de língua)"),LISTA_SALA_DUPLO_HORARIO("Lista de sala - formato duplo (com horário)"),LISTA_SALA_SIMPLES("Lista de sala - formato simples"),RELATORIO_INSCRICAO("Relatório com nº de inscrição e tipo de prova"),RELATORIO_RESERVA_PROVAS("Relatório de reserva de provas");@IdprivateStringidSublista;privateStringdescricao;privateStringespecificacao;@TransientprivateFileItemfileItem;SubLista(Stringdescricao){this.descricao=descricao;}publicStringgetEspecificacao(){returnespecificacao;}publicvoidsetEspecificacao(Stringespecificacao){this.especificacao=especificacao;}publicvoidsetIdSublista(StringidSublista){this.idSublista=idSublista;}publicFileItemgetFileItem(){returnfileItem;}publicvoidsetFileItem(FileItemfileItem){this.fileItem=fileItem;}}
S
SadNess
qual a solução então?
deixar de ser enum e transformar numa classe, mas com um atributo enum?
S
SadNess
é
isso aí vai resolver
brigadão cara
R
raikk0n3n
//Remova o implements Serializable//Remova o @Entity//Remova @Id e seu atributoprivateSubLista(finalStringdescricao){this.descricao=descricao;}
coloque o construtor como private!!!
Não entendi, pq vc tem dois atributo String sendo que vc só esta colocando só um no construtor e nas constantes?
Cade os get’s
R
raikk0n3n
publicenumSubLista{DISQUETE_CONSULTA("Disquete Consulta FCC"),LISTA_ALFA_COLEGIO("Lista alfa colégio"),LISTA_ALFA_POSTO("Lista alfa posto"),LISTA_CADASTRO("Lista de Cadastro (Alfa geral)"),LISTA_PRESENCA("Lista de presenca com espaço para assinatura"),LISTA_SALA_DUPLO_LINGUA("Lista de sala - fomato duplo (c/ mist. de língua)"),LISTA_SALA_DUPLO_HORARIO("Lista de sala - formato duplo (com horário)"),LISTA_SALA_SIMPLES("Lista de sala - formato simples"),RELATORIO_INSCRICAO("Relatório com nº de inscrição e tipo de prova"),RELATORIO_RESERVA_PROVAS("Relatório de reserva de provas");privateStringdescricao;privateSubLista(finalStringdescricao){this.descricao=descricao;}publicStringgetDescricao(){returndescricao;}}
R
raikk0n3n
Enum não é persistida no banco por isso vc naum pode usar @Entity
vc tem 3 variaveis String mas na constante só esta uma
R
raikk0n3n
Faz Assim crie uma Enum
publicenumSubListaEnum{DISQUETE_CONSULTA("Disquete Consulta FCC"),LISTA_ALFA_COLEGIO("Lista alfa colégio"),LISTA_ALFA_POSTO("Lista alfa posto"),LISTA_CADASTRO("Lista de Cadastro (Alfa geral)"),LISTA_PRESENCA("Lista de presenca com espaço para assinatura"),LISTA_SALA_DUPLO_LINGUA("Lista de sala - fomato duplo (c/ mist. de língua)"),LISTA_SALA_DUPLO_HORARIO("Lista de sala - formato duplo (com horário)"),LISTA_SALA_SIMPLES("Lista de sala - formato simples"),RELATORIO_INSCRICAO("Relatório com nº de inscrição e tipo de prova"),RELATORIO_RESERVA_PROVAS("Relatório de reserva de provas");privateStringdescricao;privateSubListaEnum(finalStringdescricao){this.descricao=descricao;}publicStringgetDescricao(){returndescricao;}}