Olá Pessoal, tudo bom?
Hoje iremos falar sobre erro de Mapeamento de Entidades JPA, mais especificamente da exception No identifier specified for entity.
Descrição do Erro
Ao mapear entidades via JPA para realizar a comunicação entre um banco de dados e o Java nós utilizamos a annotation javax.persistence.@Id para indicar ao JPA que este atributo representa o identificador da tabela do banco de dados, ou seja, a primary key.
Não inserindo esta annotation, ocorrerá um erro com uma stack trace parecida:
org.hibernate.AnnotationException: No identifier specified for entity: br.pucpr.bsi.prog6.ticketsEventosBSI.model.Artista
at org.hibernate.cfg.InheritanceState.determineDefaultAccessType(InheritanceState.java:277)
at org.hibernate.cfg.InheritanceState.getElementsToProcess(InheritanceState.java:224)
at org.hibernate.cfg.AnnotationBinder.bindClass(AnnotationBinder.java:707)
at org.hibernate.cfg.Configuration$MetadataSourceQueue.processAnnotatedClassesQueue(Configuration.java:3568)
at org.hibernate.cfg.Configuration$MetadataSourceQueue.processMetadata(Configuration.java:3522)
at org.hibernate.cfg.Configuration.secondPassCompile(Configuration.java:1379)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1784)
at br.pucpr.bsi.prog6.ticketsEventosBSI.dao.util.HibernateUtil.getSessionFactory(HibernateUtil.java:23)
at br.pucpr.bsi.prog6.ticketsEventosBSI.dao.util.HibernateUtil.getSession(HibernateUtil.java:29)
at br.pucpr.bsi.prog6.ticketsEventosBSI.dao.PatternDAO.insert(PatternDAO.java:84)
at br.pucpr.bsi.prog6.ticketsEventosBSI.bc.ArtistaBC.insert(ArtistaBC.java:29)
… 35 more
Solução
A solução para este erro é inserir a annotation javax.persistence.@Id dentro da entidade mapeada. Toda entidade deve possuir um atributo que seja um identificador, como mostra o código abaixo:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
package br.com.mauda.example.model; import java.io.Serializable; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.Id; @Entity public class Artista implements Serializable { private static final long serialVersionUID = 1L; @Id private Long id; private String nome; //outros atributos, métodos e construtores } |
finally{
Caso você achou mais alguma solução para essa exception, por favor deixe nos comentários abaixo!
Duvidas ou sugestões? Deixe seu feedback! Isso ajuda a saber a sua opinião sobre os artigos e melhorá-los para o futuro! Isso é muito importante!
Até um próximo post!
Gleison says
Resolveu meu problema, a mensagem de erro deveria ser mais específica.
Obrigado!
Mauda says
Olá Gleison, tudo bem?
Realmente a mensagem deveria ser mais clara.
Que bom que auxiliou seu caso.
Precisando estamos por aqui.
Obrigado.