首页 > 解决方案 > Spring Boot:按 ManyToOne 排序

问题描述

让我们想象一下以下模型:

@Entity
public class Author {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private long id;

    @Column(name="name")
    private String name;

    @OneToMany(mappedBy = "author")
    private List<Book> books;

    <constructor, getters, setters etc.>
}

@Entity
public class Book {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private long id;

    private String title;

    @ManyToOne
    @JoinColumn(name = "author_id")
    private Author author;

    <constructor, getters, setters etc.>
}

对于每个模型,都有一个简单的 PagingAndSortingRepository 正在使用中。

现在我喜欢按作者姓名排序所有书籍。所以我的预期要求是这样的:\books?page=0&size=10&sort=author.name,asc

这不适用于默认的 PagingAndSortingRepository,使用titleas 排序参数没有问题。我怎么能支持这个@ManyToOne领域?

标签: javaspringspring-boot

解决方案


推荐阅读