我的应用程序有大型搜索表单,每个实体属性有许多输入,我想定义一个方法,例如通用查询搜索的标准方法,而不是定义每个实体属性搜索的方法,我如何使用hibernate或JPA做到这一点?
使用JpaSpecificationExecutor(向下滚动到第5节
这样你就可以编程地定义你要添加到where子句中的字段,像这样:
(Specification<Book>) (book, cq, cb) ->
cb.and(
// You can dynamically construct that array of predicates based on which fields are set in the form
cb.like(book.get("author"), "%" + author + "%"),
cb.like(book.get("title"), "%" + title + "%")
)