作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想使用 Spring Boot 1.5 执行过滤器列表的查询,我有必需的参数(用户名)和可选的参数(电子邮件),如何在查询中为参数分配可选参数?@Query("从用户 u 中选择 u,其中 u.username LIKE :username AND u.email=:email")public Page getUsers(@Param("username") String 用户名, @Param("email") String email); http://localhost:8080/users?username=&email=test : 工作正常 http://localhost:8080/users?username= : 异常
最佳答案
使用 JPA 标准 API,如下所示:
首先,创建一个Specification
对象:
private Specification<Item> createSpecification(ItemSearch itemSearch) {
return (root, query, criteriaBuilder) -> criteriaBuilder.and(
Stream.of(
itemSearch.getUsername() == null ? null : criteriaBuilder.like(root.get("username"), itemSearch.getUsername()),
itemSearch.getEmail() == null ? null : criteriaBuilder.equal(root.get("email"), itemSearch.getEmail())
).filter(Objects::nonNull).toArray(Predicate[]::new)
);
}
从JpaSpecificationExecutor
扩展您的存储库:
public interface ItemRepository extends CrudRepository<Item, Long>, JpaSpecificationExecutor<Item> {
}
使用规范选择所有项目:
List<Item> items = itemRepository.findAll(createSpecification(itemSearch))
关于java - 查询 Spring-Boot jpa 1.5 的可选参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53382803/
我正在尝试用 Swift 编写这段 JavaScript 代码:k_combinations 到目前为止,我在 Swift 中有这个: import Foundation import Cocoa e
我是一名优秀的程序员,十分优秀!