如何编写基于作为父实体spring数据jpa的一部分的字段对结果进行排序的查询方法
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何编写基于作为父实体spring数据jpa的一部分的字段对结果进行排序的查询方法相关的知识,希望对你有一定的参考价值。
在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返回有序结果。
答案
要访问B的属性,必须在查询方法的声明中包含B的字段名称。
public interface ARepository extends CrudRepository<A, String>
List<A> findByNameOrderByb_b_field(String name);
有关SpringData如何解析嵌套属性的更多信息,请参见:
以上是关于如何编写基于作为父实体spring数据jpa的一部分的字段对结果进行排序的查询方法的主要内容,如果未能解决你的问题,请参考以下文章
如何使用Spring数据JPA基于来自另一个实体的列检索实体的数据?
具有父复合 pk 的 JPA OneToMany 是子主键派生实体问题的一部分