【发布时间】:2021-02-15 19:55:02
【问题描述】:
我有两个具有多对一关系的简单类
public class User {
Long id;
String name;
...
(getters, setters, methods)
}
public class Item {
Long id;
String name;
@ManyToOne(cascade = PERSIST, fetch = LAZY, optional = false)
User user;
...
(getters, setters, methods)
}
我想进行左连接。我试过了:
Subquery<Long> subquery = query.subquery(Long.class)
Root<User> root = subquery.from(User .class);
Join<User, Item> join = root.join("user", JoinType.LEFT);
但是用户中没有“用户”会引发异常,我明白为什么。 如何做到这一点?
【问题讨论】:
-
你的加入应该是倒置的,因为你的根是用户。所以你实际上是在 User 对象中寻找用户。例如加入。我还在我的回答中添加了一个完整的例子
标签: java spring criteria hibernate-criteria criteria-api