我正在使用JPA/EclipseLink。我定義了一個名爲超參數強制EclipseLink在刪除語句中使用鑑別器列
@Entity
@Table(name="parameter")
@Inheritance(strategy=InheritanceType.SINGLE_TABLE)
@DiscriminatorColumn(name="type",discriminatorType=DiscriminatorType.STRING,length=64)
@DiscriminatorValue(value="fr.itce.babel.entity.Parameter")
public class Parameter {
@Id
String code;
String value;
...
}
和兩個其他實體繼承
@Entity
@DiscriminatorValue(value="fr.itce.babel.entity.Line")
public class Line extends Parameter {
}
@Entity
@DiscriminatorValue(value="fr.itce.babel.entity.Phase")
public class Phase extends Parameter {
}
當我選擇所有「行」,生成的查詢是
select code, value from parameter where type = ?
類型=' 'fr.itce.babel.entity.Line'
它適合我。
但刪除線實體的時候,我得到這樣的事情
delete from parameter where code = ?
呸......它不使用鑑別柱等刪除所有實體相同的代碼事件,如果它是一個階段...
如何在我的刪除查詢中強制使用鑑別器列?