JpaRepository查找子项(可分页)

时间:2018-07-23 22:06:48

标签: java spring hibernate spring-data-jpa

我遇到了一个我无法解决的问题。

我想找到Class1个具有“活动”状态的元素,这些元素在status2上具有“活动” Class2,并且属于特定的user

例如:查找所有张贴在帖子上且状态为“有效”的“约翰”的“已接受”评论。

我尝试使用此(JpaRepository):

Page<Class1> findAllByStatusAndClass2StatusAndClass2User(String status, String status2, User user, Pageable pageRequest)

我的代码:

@Entity
@Table(name = "class1")
public class Class1 {
...

    @OneToMany(mappedBy = "class1")
    private Set<Class2> class2;

    String status1;
...
}

@Entity
@Table(name = "class2")
public class Class2 {
...

    @ManyToOne
    @JoinColumn(name = "class1_id", nullable = false)
    private Class1 class1;

    User user;       
    String status2;
...
}

谢谢您的帮助。

1 个答案:

答案 0 :(得分:0)

实际上,对于JPARepository,方法名称和参数应遵循实体中的字段名称。

因此,您需要使用status1代替status,并使用Class2Status2代替Class2Status

您的方法应如下:

Page<Class1> findAllByStatus1AndClass2Status2AndClass2User(String status1, String status2, User user, Pageable pageRequest)