1
如何使用額外的ON子句參數加入? 我有一個SQL:JPA CriteriaBuilder加入額外的ON子句參數(謂詞)
select * from Address address left outer join AddressLine line
on line.id = address.lineId AND line.type = 'MA'
where address.id = 1;
我有代碼:從數據庫
CriteriaBuilder cb = em.getCriteriaBuilder();
CriteriaQuery<AddressResult> query = cb.createQuery(AddressResult.class);
Root<Address> r = query.from(Address.class);
Join<Address, AddressLineMA >linesMA= r.join(Address_.linesMajor, JoinType.LEFT);
獲取數據。 預期該查詢不工作我得到這樣的SQL:
select * from Address address left outer join AddressLine line
on line.id = address.lineId
where address.id = 1;
和line.type =「馬」丟失。有人知道如何解決這個問題嗎?
我AddressLineMA.class看起來是這樣的:
@Entity
@DiscriminatorValue(value = "MA")
public class AddressLineMA extends AddressLine {
}
@Entity
@Table(name = "AddressLine")
@DiscriminatorColumn(name = "TYPE", discriminatorType = DiscriminatorType.STRING)
public abstract class AddressLine {
private Long id;
private String type;
private String line;
}