【发布时间】:2022-07-29 15:21:40
【问题描述】:
是否有可能创建一个条件查询,如果该实体未映射,则在另一个实体上执行外部联接?
我知道当您进行交叉连接并手动添加连接条件时,可以进行 inner 连接。它看起来像这样:
CriteriaBuilder cb = getCriteriaBuilder();
CriteriaQuery<Tuple> cq = cb.createTupleQuery();
Root<Car> car = cq.from(Car.class);
Root<Color> color = cq.from(Ccolor.class);
cq.where(cb.equal(car.get("colorUuid"), color.get("uuid")));
但是,就我而言,我需要 外部联接 的行为。
假设我有这些实体:
class Car {
@Column(name="color_uuid")
private String colorUuid;
}
class Color {
private String uuid;
private String name;
}
假设颜色是可选的,这就是我需要外连接的原因。 SQL 看起来像
SELECT * from car LEFT OUTER JOIN color ON car.color_uuid = color.uuid;
我可以用 Criteria 做到这一点吗?
【问题讨论】:
标签: java hibernate jpa criteria