• Skip to primary navigation
  • Skip to content

Mauda

IT, Java and Music

Graduação   SCJP   Mestrado
  • Apresentação
  • Certificação Java
  • JPA
    • Exceptions
  • JSF
  • Versionamento
  • Contato

Erros JPA – org.hibernate.AnnotationException: No identifier specified for entity

April 20, 2015 by Mauda 2 Comments

Conteúdo do Post:
  1. Descrição do Erro
  2. Solução
  3. finally{

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:

Java
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!

Filed Under: Erros, Hibernate, Java, JPA Tagged With: Entidades, Erros, Exceptions, Hibernate, Java, JPA, Mapeamento

About Mauda

Mestre em Informática, Analista de Sistemas, Professor, SCJP e Baterista. Desde 2002 trabalhando no mundo Java e ensinando pessoas sobre desenvolvimento de sistemas. Mais informações

Reader Interactions

Comments

  1. Gleison says

    March 6, 2022 at 2:37 am

    Resolveu meu problema, a mensagem de erro deveria ser mais específica.
    Obrigado!

    Reply
    • Mauda says

      April 23, 2022 at 10:23 am

      Olá Gleison, tudo bem?

      Realmente a mensagem deveria ser mais clara.

      Que bom que auxiliou seu caso.

      Precisando estamos por aqui.

      Obrigado.

      Reply

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Advertisements

Copyright © 2025 · Genesis Framework · WordPress · Log in