【发布时间】:2018-07-17 14:35:14
【问题描述】:
我正在开发一个公开一些端点的 Spring Boot 应用程序。我想要实现的是提供一种基于字段值的精美过滤机制。假设我有两个领域模型:文章和作者,其中一篇文章可以由作者列表编写。
@Entity
public class Article{
@Id
private String id;
private String title;
private String body;
@OneToMany
private List<Author> authors;
//Getters and setters
}
@Entity
public class Author{
@Id
private String id;
private String firstname;
private String lastname;
//Getter and setters
}
现在,我可以使用端点访问我的所有文章:localhost:8080/api/articles,并使用我想要集成的新过滤系统,我想要类似的东西:localhost:8080/api/articles?title=myTitle 按标题检索文章,或 localhost:8080/ api/articles?title=mytitle&author.firstname=Jhon 按标题和作者名字检索文章。
我查看了 JPA 规范并成功地对我的模型的直接字段进行了第一次过滤,但我无法使其适用于嵌套字段或枚举类型。有没有图书馆或其他解决方案可以满足这种需求?
【问题讨论】:
-
QueryDsl 或编写自定义存储库并使用标准
-
@pvpkiran 这就是我在 baeldung 文章之后所做的:baeldung.com/rest-api-search-language-spring-data-querydsl 但它不处理嵌套对象,或者找不到如何处理。 ://
-
当然它适用于嵌套字段。
标签: java spring spring-mvc jpa spring-boot