異常線程 「main」 javax.persistence.EntityNotFoundException: 無法找到CNPJ ID爲00001388000307EntityNotFoundException LEFT JOIN JPA - Hibernate的
我閱讀JPA文檔,我讀了這則拋出異常當它試圖accesse(由EntityManger接口的方法getReference)和實體不存在
我有這樣的實體來說:Salesman
e CNPJ
。可能存在許多具有相同CNPJ的銷售人員,換句話說,關係@ManyToOne
。
這種關係是行得通的,好。
但是,當我嘗試執行查詢
select r from Salesman r join fetch r.yearMonth left join fetch r.cnpj
帶來其yearMonth推銷員(它的工作!)關係及其CNPJ關係,拋出異常,當我嘗試做一個LEFT JOIN ,我提到。
的時候,不執行LEFT JOIN
,偉大工程,與他CNPJs所有銷售人員和異常的沒什麼,BUUUUT,一些推銷員沒有CNPJ NAD我已經給他們帶來太大,有必要做一個LEFT JOIN
。
@Entity
public class Salesman{
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int id;
@JoinColumn(name = "year_month")
@ManyToOne
private YearMonth yearMonth;
private String cnpjS;
@JoinColumn(name = "cnpj")
@ManyToOne
private CNPJ cnpj;
public AnoMes getYearMonth() {
return yearMonth;
}
public CNPJ getCnpj() {
return cnpj;
}
}
@Entity
public class CNPJ {
@Id
@Column(name = "CCG", length = 14)
private String ccg;
public String getCcg() {
return ccg;
}
}
的選擇由Hibernate生成:
select *
from salesman s
inner join yearmonth y on s.ano_mes = y.id
left outer join cnpj c on s.cnpjS = c.CCG
此協商返回該值,rcnpj從推銷員CNPJ和bcnpj是從CNPJ。一些銷售人員帶着CNPJ NULL,我認爲這是問題所在。我不這麼認爲。
我把日誌 –
我已經試圖把@Column(nullable = true)和@Fetch(FetchMode.SELECT),繼續同樣的錯誤。 –
查詢是否可以在數據庫上直接調用? – staszko032