【发布时间】:2020-07-02 11:21:01
【问题描述】:
我有一个名为Issue 的实体和一个名为UserIssue 的实体。 UserIssue 扩展了 Issue。
@Inheritance(strategy = InheritanceType.JOINED)
@Entity(name = "ISSUE")
public class Issue extends VersionedSequenceIdEntity {
... all fields
}
@Entity(name = "USER_ISSUE")
public class UserIssue extends Issue {
...
@Enumerated(EnumType.STRING)
@Column(name = "CATEGORY", nullable = false)
private IssueCategory category;
...
}
我需要做例如像这样:
Predicate predicate= root.get("category").in(IssueCategory.CATEGORY_1, IssueCategory.CATEGORY_2);
问题是 root 是 Root<Issue> 的实例,但“类别”字段是在子类 UserIssue 上定义的,所以这行代码显然不起作用。
有没有办法构建一个谓词来为子类字段创建 where 条件?我只有Root<Issue>, CriteriaQuery and CriteriaBuilder 的实例。
谢谢你, 卢卡斯
【问题讨论】:
-
在帖子中添加您的实体
标签: java jpa criteria-api