如何使用 JPA 规范访问连接实体的列?
How to access the column of joined entity using JPA Specification?
我正在创建一个规范,其中returns父实体的记录基于子 实体的 type 列。这 2 个实体具有一对一映射,所以我加入它们。
但问题是类型列在子实体的嵌入 ID 中。
我的代码片段如下:
return (root, query, criteriaBuilder) -> {
Join<Parent, Child> join = root.join("child");
return criteriaBuilder.and(
criteriaBuilder.equal(join.get("id.type"), val)
);
};
我还没有成功。如何正确访问类型列以使我的代码正常工作?
我发现下面的代码让它工作 -
return (root, query, criteriaBuilder) -> {
Join<Parent, Child> join = root.join("child");
Join<Child, ChildPK> joinId = join.join("id");
return criteriaBuilder.and(
criteriaBuilder.equal(joinId.get("type"), val)
);
};
这里的 ChildPK 是嵌入的 id。
我正在创建一个规范,其中returns父实体的记录基于子 实体的 type 列。这 2 个实体具有一对一映射,所以我加入它们。
但问题是类型列在子实体的嵌入 ID 中。
我的代码片段如下:
return (root, query, criteriaBuilder) -> {
Join<Parent, Child> join = root.join("child");
return criteriaBuilder.and(
criteriaBuilder.equal(join.get("id.type"), val)
);
};
我还没有成功。如何正确访问类型列以使我的代码正常工作?
我发现下面的代码让它工作 -
return (root, query, criteriaBuilder) -> {
Join<Parent, Child> join = root.join("child");
Join<Child, ChildPK> joinId = join.join("id");
return criteriaBuilder.and(
criteriaBuilder.equal(joinId.get("type"), val)
);
};
这里的 ChildPK 是嵌入的 id。