Estou com um problema em um mapeamento onde tenho duas tabelas NOTA_FISCAL e GUIA_NOTA
Uma guia_nota pode ter varias notas fiscais e uma nota pode ter apenas uma guia_nota relacionada
E tem o caso de notas fiscais que nao tem nenhuma guia_nota
Quando executo uma namedQuery do Guia_Nota esta tudo ok, porém quando executo uma da Nota_Fiscal obtenho o seguinte erro :
javax.ejb.EJBException: javax.persistence.EntityNotFoundException: Unable to find br.com.dsfnet.manutencao.entity.Guia_Nota with id 19186
O problema é que tenho notas fiscais que não têm nenhuma guia_nota relacionada, O que eu devo colocar na Classe Nota_Fiscal para fazer o Left Join ja possibilitando que sejam retornadas essas notas sem guia para que o erro nâo ocorra ?
Segue as duas entidades abaixo:
@Table(name = "GUIA_NOTA")
public class Guia_Nota implements Serializable {
private static final long serialVersionUID = -5556925083800983578L;
@Id
@Column(name = "ID_GUIA_NOTA", nullable = false)
private Long id_guia_nota;
@Column(name = "ID_GUIA", nullable = false)
private Long id_guia;
@Column(name = "ID_NOTA_FISCAL", nullable = false)
private Long id_nota_fiscal;
@Transient
private Long QtdNotas;
@OneToMany(mappedBy="guia_nota", cascade=CascadeType.ALL, fetch=FetchType.EAGER)
private List<Nota_Fiscal> nota_fiscal;
public Long getId_guia_nota() {
return id_guia_nota;
}
public void setId_guia_nota(Long id_guia_nota) {
this.id_guia_nota = id_guia_nota;
}
public Long getId_guia() {
return id_guia;
}
public void setId_guia(Long id_guia) {
this.id_guia = id_guia;
}
public Long getId_nota_fiscal() {
return id_nota_fiscal;
}
public void setId_nota_fiscal(Long id_nota_fiscal) {
this.id_nota_fiscal = id_nota_fiscal;
}
public Long getQtdNotas() {
return QtdNotas;
}
public void setQtdNotas(Long qtdNotas) {
QtdNotas = qtdNotas;
}
public List<Nota_Fiscal> getNota_fiscal() {
return nota_fiscal;
}
public void setNota_fiscal(List<Nota_Fiscal> nota_fiscal) {
this.nota_fiscal = nota_fiscal;
}
}
Entidade NOTA_FISCAL
@Table(name = "NOTA_FISCAL")
public class Nota_Fiscal implements Serializable {
private static final long serialVersionUID = 8978798023090144826L;
@Id
@Column(name = "ID_NOTA_FISCAL", nullable = false)
private Long id_nota_fiscal;
@Column(name = "COD_CID")
private Long codcid;
@Column(name = "NUM_NOTA")
private Long num_nota;
@Column(name = "PREST_INSCRICAO_MUNICIPAL")
private String prest_inscricao_municipal;
@Column(name = "RPS_NUM")
private Long rps_num;
//MAPEAMENTO COM A GUIA_NOTA
@ManyToOne
@JoinColumn(name = "id_nota_fiscal")
public Guia_Nota guia_nota;
public Long getId_nota_fiscal() {
return id_nota_fiscal;
}
public void setId_nota_fiscal(Long id_nota_fiscal) {
this.id_nota_fiscal = id_nota_fiscal;
}
public Long getNum_nota() {
return num_nota;
}
public void setNum_nota(Long num_nota) {
this.num_nota = num_nota;
}
public String getPrest_inscricao_municipal() {
return prest_inscricao_municipal;
}
public void setPrest_inscricao_municipal(String prest_inscricao_municipal) {
this.prest_inscricao_municipal = prest_inscricao_municipal;
}
public Long getRps_num() {
return rps_num;
}
public void setRps_num(Long rps_num) {
this.rps_num = rps_num;
}
public Long getCodcid() {
return codcid;
}
public void setCodcid(Long codcid) {
this.codcid = codcid;
}
}