Boa tarde.
Possuo duas classes de entidade: Terminal e OcorrenciasLinha.
A entidade OcorrenciasLinha possui uma annotation @ManyToOne com a entidade Terminal, logo, posso ter N OcorrenciasLinha para 1 Terminal.
Ao cadastrar uma OcorrenciasLinha, o cadastro acontece com sucesso. Porém, quando tento buscar uma (ou um getResultList) OcorrenciasLinha, acontece a exception EntityNotFoundException para a entidade Terminal. O que pode ser? Pois o cadastro de uma OcorrenciasLinha funciona, mas a busca não.
OBS: Já temos duas situações idênticas, com a mesma estrutura e tudo, mas com esta situação dá esta exception.
A exception: Servlet.service() for servlet default threw exception: javax.persistence.EntityNotFoundException: Unable to find <>.Terminal with id 2858
Segue a entidade OcorrenciasLinha
import java.io.Serializable;
import java.util.Date;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
@Entity
@Table(name = "OCORRENCIAS_LINHA")
public class OcorrenciasLinha implements Serializable {
private static final long serialVersionUID = -6478234769300258117L;
/**
* chave primária
*/
@Log(attach="Id da Ocorrencia de Linha")
@Id
@Column(name = "ID_OCORRENCIA")
@SequenceGenerator(name = "OCORRENCIA_LINHA_SEQ_GEN", sequenceName = "SEQ_OCORRENCIA_LINHA", allocationSize=1)
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "OCORRENCIA_LINHA_SEQ_GEN")
private long id;
@Log(attach="Linha")
@ManyToOne(optional=false, fetch=FetchType.EAGER)
@JoinColumn(name="ID_TERMINAL")
private Terminal terminal;
@Log(attach="Status da Ocorrencia de Linha")
@ManyToOne(optional=false, fetch=FetchType.EAGER)
@JoinColumn(name="ID_STATUS")
private StatusTerminal statusTerminal;
@Log(attach="Usuario da Ocorrencia de Linha")
@ManyToOne(optional=false, fetch=FetchType.EAGER)
@JoinColumn(name="ID_USUARIO")
private UsuarioAtendimento usuario;
@Log(attach="Data da Ocorrencia de Linha")
@Column(name="DATA")
@Temporal(TemporalType.TIMESTAMP)
private Date data;
@Log(attach="Descricao da Ocorrencia de Linha")
@Column(name="DESCRICAO")
private String descricao;
public OcorrenciasLinha() {
super();
}
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public Terminal getTerminal() {
return terminal;
}
public void setTerminal(Terminal terminal) {
this.terminal = terminal;
}
public StatusTerminal getStatusTerminal() {
return statusTerminal;
}
public void setStatusTerminal(StatusTerminal statusTerminal) {
this.statusTerminal = statusTerminal;
}
public UsuarioAtendimento getUsuario() {
return usuario;
}
public void setUsuario(UsuarioAtendimento usuario) {
this.usuario = usuario;
}
public Date getData() {
return data;
}
public void setData(Date data) {
this.data = data;
}
public String getDescricao() {
return descricao;
}
public void setDescricao(String descricao) {
this.descricao = descricao;
}
}
Segue a entidade Terminal
import java.io.Serializable;
import java.util.Date;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToOne;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
@Entity
@Table(name = "TERMINAL")
public class Terminal implements Serializable {
private static final long serialVersionUID = -6478234769300258117L;
/**
* chave primária
*/
@Log (attach="ID do Terminal")
@Id
@Column(name = "ID_TERMINAL")
@SequenceGenerator(name = "TERMINAL_SEQ_GEN", sequenceName = "SEQ_TERMINAL", allocationSize=1)
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "TERMINAL_SEQ_GEN")
private long id;
@Log (attach="Rede do Terminal")
@Column(name="REDE")
private long rede;
@Log (attach="Estabelecimento do Terminal")
@Column(name="ESTABELECIMENTO")
private long estabelecimento;
@Log (attach="Cidade do Terminal")
@Column(name="CIDADE")
private String cidade;
@Log (attach="Data de Cadastro do Celular")
@Column(name="DATA_CRIACAO")
@Temporal(TemporalType.TIMESTAMP)
private Date dataCadastro;
@Log (attach="Data de Alteracao do Celular")
@Column(name="DATA_ALTERACAO")
@Temporal(TemporalType.TIMESTAMP)
private Date dataAlteracao;
@Log (attach="Status do Terminal")
@ManyToOne(optional=false, fetch=FetchType.EAGER)
@JoinColumn(name="ID_STATUS_TERMINAL")
private StatusTerminal statusTerminal;
@Log (attach="Numero da Linha do Terminal")
@Column(name="NUM_CELULAR")
private long numeroCelular;
@Log (attach="Código de Area da Linha do Terminal")
@Column(name="COD_AREA")
private long codigoArea;
@Log (attach="Terminal")
@Column(name="TERMIN")
private String termin;
@Log (attach="Celular Associado ao Terminal")
@OneToOne(optional=false, fetch=FetchType.EAGER)
@JoinColumn(name="SN_APARELHO_CELULAR")
private Celular celular;
@Log (attach="Impressora Associada ao Terminal")
@OneToOne(optional=false, fetch=FetchType.EAGER)
@JoinColumn(name="ID_IMPRESSORA")
private Impressora impressora;
@Log (attach="Serial da Impressora Associada ao Terminal")
@Column(name="SERIAL_IMPRESSORA")
private String serialImpressora;
@Log (attach="Operadora da Linha do Terminal")
@ManyToOne(optional=false, fetch=FetchType.EAGER)
@JoinColumn(name="ID_OPERADORA")
private OperadoraLinha operadora;
public Terminal() {
super();
}
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public long getRede() {
return rede;
}
public void setRede(long rede) {
this.rede = rede;
}
public long getEstabelecimento() {
return estabelecimento;
}
public void setEstabelecimento(long estabelecimento) {
this.estabelecimento = estabelecimento;
}
public String getCidade() {
return cidade;
}
public void setCidade(String cidade) {
this.cidade = cidade;
}
public Date getDataCadastro() {
return dataCadastro;
}
public void setDataCadastro(Date dataCadastro) {
this.dataCadastro = dataCadastro;
}
public Date getDataAlteracao() {
return dataAlteracao;
}
public void setDataAlteracao(Date dataAlteracao) {
this.dataAlteracao = dataAlteracao;
}
public StatusTerminal getStatusTerminal() {
return statusTerminal;
}
public void setStatusTerminal(StatusTerminal statusTerminal) {
this.statusTerminal = statusTerminal;
}
public long getNumeroCelular() {
return numeroCelular;
}
public void setNumeroCelular(long numeroCelular) {
this.numeroCelular = numeroCelular;
}
public long getCodigoArea() {
return codigoArea;
}
public void setCodigoArea(long codigoArea) {
this.codigoArea = codigoArea;
}
public String getTermin() {
return termin;
}
public void setTermin(String termin) {
this.termin = termin;
}
public Celular getCelular() {
return celular;
}
public void setCelular(Celular celular) {
this.celular = celular;
}
public Impressora getImpressora() {
return impressora;
}
public void setImpressora(Impressora impressora) {
this.impressora = impressora;
}
public String getSerialImpressora() {
return serialImpressora;
}
public void setSerialImpressora(String serialImpressora) {
this.serialImpressora = serialImpressora;
}
public OperadoraLinha getOperadora() {
return operadora;
}
public void setOperadora(OperadoraLinha operadora) {
this.operadora = operadora;
}
}
Obrigado