0
我在SpringBoot中工作,我正在使用JPA存儲庫進行數據庫訪問。我有兩個實體說我們是否必須在SpringBoot中使用JPA時使用Left Join查詢?
Class A{
@Id
private String primarykeyColumnA;
@OneToMany(mappedBy="campaign",fetch = FetchType.EAGER,cascade = { CascadeType.PERSIST, CascadeType.MERGE, CascadeType.REFRESH })
private Set<B> b;
....
}
Class B{
@Id
private Long primaryKeyColB;
@ManyToOne(fetch = FetchType.LAZY, cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH, CascadeType.REMOVE })
@JoinColumn(name = "primarykeyColumnA")
private A a;
}
所以我不得不加入這兩個表,這是一對多(爲一個A,會有很多B)的關係。它工作正常。但我想確保使用Left join。通常是左連接還是應該專門使用查詢?
一些幫助是非常感謝。
感謝您的回答。我正在使用Hibernate。我不明白你提到的1 + n查詢問題。我擔心的是,如果沒有B與特定的A相關聯,那麼在內連接的情況下,我不會得到任何結果,因爲對應的A沒有B值。 – saru10
1 + n問題意味着,當您對A實體執行JPA查詢時,Hibernate將創建1個SQL查詢以加載A個實體,然後n個SQL查詢爲以前加載的每個A實體加載B個實體。在這種情況下,如果沒有任何B實體與A相關,則不會有問題。 –