首页 > 解决方案 > 条件 trowing 错误以及如何在此处使用而不会出现任何错误

问题描述

我的存储库代码

@Repository
public interface EventRepository extends CrudRepository<Event, Long>, JpaSpecificationExecutor<Event>{

    List<Event> findByStatus(String status);

    Page<Event> findByStatus(String status, Pageable pageable);
}

我的服务等级

public ApiResponse upcommingEvent(String filter){
    return new ApiResponse(LocalDateTime.now(), HttpStatus.OK, "some",  eventRepository.findAll(new Specification<Event>() {
        @Override
        public Predicate toPredicate(Root<Event> root, CriteriaQuery<?> query, CriteriaBuilder criteriaBuilder) {
            List<Predicate> predicates = new ArrayList<>();
            if(filter!=null) {
                predicates.add(criteriaBuilder.and(criteriaBuilder.greaterThanOrEqualTo(root.get("eventDateStart"), filter)));
            } 
            return criteriaBuilder.and(predicates.toArray(new Predicate[predicates.size()]));
        }
    }));
}

这里 eventRepository.findAll(new Specification()) 是默认功能,但我需要 findByStatus("Y") 条件。当我使用 findByStatus 条件时出现错误以及如何在此处使用而没有任何错误。

标签: javaerror-handling

解决方案


推荐阅读