javax.persistence.EntityNotFoundException: Unable to find Entity with id 5

28 views
Skip to first unread message

Romário Teles

unread,
Dec 20, 2017, 7:06:12 AM12/20/17
to ce...@googlegroups.com
Bom dia pessoal,
Tenho uma classe Produto que possui relacionamento com outra classe Imposto (anotada com @ManyToOne), quando eu faço uma busca no banco ele traz o objeto Imposto do Produto, mas a entidade Imposto vem em um proxy com todos os seus atributos, no entanto se eu tentar acessar Imposto de Produto ele gera essa exceção: javax.persistence.EntityNotFoundException: Unable to find Entity with id 5, mesmo o registro existindo no banco. Alguém sabe por que disso?

@Entity
@Table(name="produto")
public class Produto implements Serializable {

...

    @ManyToOne
    @JoinColumn
    private Imposto imposto;

...

}


Atenciosamente,
Romário Teles Pires
Especializando em Engenharia de Software
Desenvolvedor de aplicações para WEB e Android
Celular: (85) 99946-4897

Rafael Ponte

unread,
Dec 20, 2017, 11:02:48 AM12/20/17
to ce...@googlegroups.com
Oi,

Se o Hibernate diz que não existe é porque as chances são de que não existe mesmo. hehe

Tem certeza que o ID=5 tem um registro correspondente na tabela de impostos?

Um abraço,

--
-- Você está inscrito na lista de discussão técnica do CEJUG. Para sair da lista de discussão, envie um email para cejug+un...@googlegroups.com.
---
Você recebeu essa mensagem porque está inscrito no grupo "CEJUG" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para cejug+un...@googlegroups.com.
Para postar nesse grupo, envie um e-mail para ce...@googlegroups.com.
Acesse esse grupo em https://groups.google.com/group/cejug.
Para mais opções, acesse https://groups.google.com/d/optout.
--
Rafael Ponte
TriadWorks | Formação Java
http://cursos.triadworks.com.br

Romário Teles

unread,
Dec 20, 2017, 11:29:43 AM12/20/17
to ce...@googlegroups.com
Olá Rafael, eu verifiquei no banco e ele está lá. Na verdade esse problema está acontecendo apenas para informações auditadas, a consulta é feita através do código abaixo:

auditReader = AuditReaderFactory.get(entityManager);
AuditQueryCreator queryCreator = auditReader.createQuery();
AuditQuery query = queryCreator.forRevisionsOfEntity(clazz, false, false);

List<Object[]> resultList = query.getResultList();

Todos os anotados com @ManyToOne estão com esse problema.



Em anexos.

Atenciosamente,
Romário Teles Pires
Especializando em Engenharia de Software
Desenvolvedor de aplicações para WEB e Android
Celular: (85) 99946-4897
Em 20 de dezembro de 2017 13:02, Rafael Ponte <rpo...@gmail.com> escreveu:
Oi,

Se o Hibernate diz que não existe é porque as chances são de que não existe mesmo. hehe

Tem certeza que o ID=5 tem um registro correspondente na tabela de impostos?

Um abraço,
On Wed, 20 Dec 2017 at 09:06 Romário Teles <romma...@gmail.com> wrote:
Bom dia pessoal,
Tenho uma classe Produto que possui relacionamento com outra classe Imposto (anotada com @ManyToOne), quando eu faço uma busca no banco ele traz o objeto Imposto do Produto, mas a entidade Imposto vem em um proxy com todos os seus atributos, no entanto se eu tentar acessar Imposto de Produto ele gera essa exceção: javax.persistence.EntityNotFoundException: Unable to find Entity with id 5, mesmo o registro existindo no banco. Alguém sabe por que disso?

@Entity
@Table(name="produto")
public class Produto implements Serializable {

...

    @ManyToOne
    @JoinColumn
    private Imposto imposto;

...

}


Atenciosamente,
Romário Teles Pires
Especializando em Engenharia de Software
Desenvolvedor de aplicações para WEB e Android

--
-- Você está inscrito na lista de discussão técnica do CEJUG. Para sair da lista de discussão, envie um email para cejug+unsubscribe@googlegroups.com.

---
Você recebeu essa mensagem porque está inscrito no grupo "CEJUG" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para cejug+unsubscribe@googlegroups.com.

Para postar nesse grupo, envie um e-mail para ce...@googlegroups.com.
Acesse esse grupo em https://groups.google.com/group/cejug.
Para mais opções, acesse https://groups.google.com/d/optout.
--
Rafael Ponte
TriadWorks | Formação Java
http://cursos.triadworks.com.br

--
-- Você está inscrito na lista de discussão técnica do CEJUG. Para sair da lista de discussão, envie um email para cejug+unsubscribe@googlegroups.com.

---
Você recebeu essa mensagem porque está inscrito no grupo "CEJUG" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para cejug+unsubscribe@googlegroups.com.

Cleonilson Vieira

unread,
Dec 26, 2017, 8:52:18 AM12/26/17
to ce...@googlegroups.com
Oi Romário, bom dia!

A especificação JPA 2.0 diz que o FetchType para relacionamentos do tipo @ManyToOne é EAGER, ou seja, deveria ser "carregado automaticamente" o objeto Imposto sempre que você recupera um Produto do banco. De qualquer modo, tente o seguinte:

1- Declare explicitamente que que usar o FetchType EAGER:
@ManyToOne(fetch = FetchType.EAGER)
2- Sua anotação @JoinColumn está sem o atributo name. É opcional, mas quando você relaciona tabelas sem utilizar foreignkeys (Não sei se é o caso) para que funcione corretamente, diga o Hibernate qual o nome da coluna que deve ser utilizada.
@JoinColumn(name = "FK_IMPOSTO_ID")

  

-------- Mensagem original --------
De: Romário Teles <romma...@gmail.com>
Assunto: Re: [CEJUG] javax.persistence.EntityNotFoundException: Unable to find Entity with id 5
Data: Wed, 20 Dec 2017 13:29:00 -0300
Reply all
Reply to author
Forward
0 new messages