如何编写基于父实体spring数据jpa一部分的字段对结果进行排序的查询方法

时间:2019-02-28 16:19:16

标签: spring-boot spring-mvc jpa spring-data-jpa spring-data

在Spring数据JPA中,我们可以编写查询方法来执行查询。我有两个实体

class A {
    @Id
    @Column
    private String id;

    private String name;

    @ManyToOne
    @JoinColumn(name = "b_field")
    private B b;
}

class B {
    @Id
    @KeyField
    @Column
    private String id; 

    private String b_field
}

我想编写一个查询方法“ findByNameOrderByb_field”,即找到所有具有所提供名称的行,并根据类B的字段b_field对结果进行排序。编写上述函数不会返回有序结果。有什么办法可以在Spring Boot中编写此orderby查询方法。

public interface ARepository extends CrudRepository<A, String> {

    List<A> findByNameOrderByb_field(String name);
}

上面的函数没有返回基于B的b_field的有序结果。

1 个答案:

答案 0 :(得分:1)

要访问B的属性,必须在查询方法的声明中包括B的字段名称。

public interface ARepository extends CrudRepository<A, String> {

    List<A> findByNameOrderByb_b_field(String name);
}

更多信息,请参见:

Query Property Expressions