【发布时间】:2020-12-18 15:47:53
【问题描述】:
我有类 BookSpecBuider 从 dto 创建 JPA 规范。
BookSpecBuider 类:
public class BookSpecBuilder {
public Specification<Book> getSpec(BookSearchDto bookSearchDto) {
return (root, query, builder) -> {
List<Predicate> predicates = new ArrayList<>();
if (bookSearchDto.getGenre() != null) {
predicates.add(root.get("genre").in(bookSearchDto.getGenre()));
}
// another conditions
类型 是枚举类,所以我遇到了问题,在我的 BookSearchDto 流派是字符串并且映射有问题。
我在我的 if-block 中更改它:
predicates.add(root.get("genre").in(Genre.valueOf(bookSearchDto.getGenre())));
但是现在我遇到了异常问题,如果我得到类型字符串,我的枚举没有。 避免此问题的最佳方法是什么?
【问题讨论】:
-
嗯...通过捕获和处理异常?
-
我觉得不是很漂亮
标签: java jpa enums specifications