【发布时间】:2016-04-01 13:06:41
【问题描述】:
我正在使用 Spring Data JPA 规范对我的实体进行通用查询。到目前为止,它运作良好。现在,当我尝试在通过 embeddedId 注释使用的复合键上使用这些时,问题就发生了。所以在这里我需要使用嵌套属性来查询对象是否为 Foo 并且我正在尝试在 id 上编写条件。以 id1 为例。
@Entity
@Data
public class Foo implements Serializable {
private static final long serialVersionUID = 1L;
/** The key. */
@EmbeddedId
private FooKey id;
}
@Embeddable
@Data
public class FooKey implements Serializable {
private static final long serialVersionUID = 1L;
/** The key. */
private String id1;
private String id2;
}
在我想要做的规范中
@Override
public Predicate toPredicate(Root<T> root, CriteriaQuery<?> query, CriteriaBuilder builder) {
// get root type
root.get(property).getJavaType()
但这不适用于这种情况下的嵌套属性。有什么方法可以为复合键中的属性构建谓词。
【问题讨论】:
-
FWIW 没有“Spring Data JPA 谓词”之类的东西;这是一个 JPA 标准谓词。 Spring Data JPA != JPA
-
是的,感谢您的更正
标签: spring jpa spring-data-jpa