有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java JPA CriteriaBuilder与额外的ON子句参数(谓词)连接

如何加入额外的ON子句参数? 我有一个SQL:

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。类型='MA'缺失。有人知道怎么解决这个问题吗

我的地址是。课堂看起来是这样的:

@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;
}

共 (0) 个答案