我在使用 Spring 数据 JPA 规范从实体 Person 获取列表时遇到问题(因为分页)。我需要按人获取所有笔记,但是这两个实体之间的依赖关系在人方面。我不知道如何创建我的谓词,因为 Note 不包含任何与 Person 相关的属性。
我可以简单地使用 Persons getter 获取 List,但我不能使用这种方式,因为我需要对返回的数据进行分页。
@Entity
public class Person implements Serializable {
@Id
private Long personId;
@OneToMany
@JoinColumn(name = "personId")
private List<Note> notes;
}
@Entity
public class Note implements Serializable {
@Id
private Long noteId;
}
通常情况下,我会写这样的东西,但是我在 Note 中没有属性 person 并且在这个阶段无法重新映射数据库。
public static Specification<Note> notesByPerson(final Long personId) {
return new Specification<Note>() {
@Override
public Predicate toPredicate(final Root<Note> root, final CriteriaQuery<?> query,
final CriteriaBuilder builder) {
final Path<Person> per = root.<Person> get("person");
return builder.equal(per.<Long> get("personId"), personId);
}
};
}
谢谢你,Zdend