Erro No identifier specified for entity

3 respostas
jpaspringhibernate
G

Ao tentar fazer teste unitário estou com este erro:

org.hibernate.AnnotationException: No identifier specified for entity: br.com.netsoft.notafiscalservico.modelo.endereco.PaisEntity

Entendi que ele não está achando o @Id na classe.

Minha classe pais

package br.com.netsoft.notafiscalservico.modelo.endereco;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Index;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;
import javax.persistence.UniqueConstraint;

import br.com.netsoft.anotacao.ExclusaoLogica;
import br.com.netsoft.modelo.NotaFiscalServicoEntity;

@Entity
@Table(name = "TB_PAIS", schema = "ENDERECOS", uniqueConstraints = { @UniqueConstraint(columnNames = { "DS_DESCRICAO" }, name = "UK_PAIS_DES") }, indexes = {
		@Index(columnList = "DS_DESCRICAO", name = "IDN_PAIS_DES"),
		@Index(columnList = "ST_REGISTRO", name = "IDN_PAIS_REGISTRO") })

public class PaisEntity extends NotaFiscalServicoEntity {

	private static final long serialVersionUID = 4072047999345381034L;

	private String descricao;

	@Id
	@Override
	@Column(name = "ID_PAIS")
	@SequenceGenerator(name = "ENDERECOS.SQ_PAIS", sequenceName = "ENDERECOS.SQ_PAIS", allocationSize = 1)
	@GeneratedValue(generator = "ENDERECOS.SQ_PAIS", strategy = GenerationType.SEQUENCE)
	public Long getId() {
		return super.getId();
	}

	@Column(name = "DS_DESCRICAO", length = 255, nullable = false)
	public String getDescricao() {
		return descricao;
	}

	public void setDescricao(String descricao) {
		this.descricao = descricao;
	}

}

EntityManager

public EntityManager getEntityManager() {

		EntityManagerFactory entityManagerFactory = Persistence
				.createEntityManagerFactory("nfse");

		entityManager = entityManagerFactory.createEntityManager();

		return entityManager;
	}

persistence.xml

<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.1"
	xmlns="http://xmlns.jcp.org/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd">
	<persistence-unit name="nfse">

		<provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>

		<class>br.com.netsoft.notafiscalservico.modelo.endereco.PaisEntity</class>

		<properties>
			<!-- Propriedades JDBC -->
			<property name="javax.persistence.jdbc.driver" value="org.postgresql.Driver" />

			<property name="javax.persistence.jdbc.url" value="jdbc:postgresql://localhost:5432/prefeitura" />

			<property name="javax.persistence.jdbc.user" value="postgres" />
			<property name="javax.persistence.jdbc.password" value="63Netsis417" />

			<!-- Configurações específicas do Hibernate -->
			<property name="hibernate.dialect" value="org.hibernate.dialect.PostgreSQLDialect" />

			<property name="hibernate.hbm2ddl.auto" value="update" />
			<property name="hibernate.show_sql" value="true" />
			<property name="hibernate.format_sql" value="true" />
			<property name="show_sql" value="true" />
		</properties>

	</persistence-unit>
</persistence>

O que pode ser ?

3 Respostas

D

Eu gostaria de entender duas coisas:
1 - Se a classe é país, qual a razão de estender a mesma de NotaFiscalServico? Não vejo sentido
2 - Onde está a classe NotaFiscalServicoEntity?

G

A classe NotaFiscalServicoEntity é uma super classe que tem anotação @MappedSuperclass, que vão para todas as classes de modelo.

versão, ip, Data, usuário e status.

private Integer versao;

private String ip;

private Date movimentacao;

private UsuarioEntity usuario;

private StatusEnum status;

Esta classe esta no packpage br.com.netsoft.notafiscalservico.modelo.

R

Tente verificar se na base de dados o nome e o tipo do atributo estão corretos, se ja tiver feito isso e esta usando maven, da um update project do maven no seu projeto para verificar se agora ele consegue encontrar.

Criado 12 de março de 2018
Ultima resposta 12 de mar. de 2018
Respostas 3
Participantes 3