我有一個帶有InheritanceType.JOINED的域模型。JPA如何使用InheritanceType.JOINED配置外部聯接
@Table(name = "S_MC_CC_RAPPORTI")
@Inheritance(strategy = InheritanceType.JOINED)
@DiscriminatorColumn(name = "COD_TIPORAPPORTO")
public class RapportoImpl implements Rapporto, Cloneable {
@Id
@Column(name = "COD_RAPPORTO")
protected Long codiceRapporto;
和子類:
@Entity
@Table(name = "CARTE")
@DiscriminatorValue("4 ")
public class CartaImpl extends RapportoImpl implements Carta, Cloneable {
private static final long serialVersionUID = 1723366781345274590L;
這個偉大的工程,直到DB是一致的。
表RAPPORTO
Id COD_TIPORAPPORTO
1 4
表全權
Id Description
1 Carta
所以,當我打開一個Rapporto
通過ID 1所有的偉大工程。但是,當數據庫不一致時,所有的工作都不好。
想象一下,我沒有更多的子表Carte
的記錄。當我嘗試加載它時,我得到一個null
對象,因爲JPA在超級表和子表之間建立內部聯接。 是否有可能通過在子表上建立外連接的方式進行配置
所以這是一種情況,其中父表具有具有特定ID的行,但沒有子錶行具有父行的FK? –
是的,這是情況。我必須在我的生產環境中處理這些情況。 –
可以執行一個特別要求超類的查詢嗎? –