gpt4 book ai didi

java - Spring CrudRepository .orElseThrow()

转载 作者:行者123 更新时间:2023-12-02 00:49:57 25 4
gpt4 key购买 nike

如果数据库查询返回空,抛出异常的正确方法是什么?我正在尝试使用 .orElseThrow() 方法,但它无法编译:

Meeting meeting = meetingRepository.findByMeetingId(meetingId).orElseThrow(new MeetingDoesNotExistException(meetingId));

编译器说:

"he method orElseThrow(Supplier) in the type Optional is not applicable for the arguments (MeetingRestController.MeetingDoesNotExistException)

是否可以使用 lambda 表达式来做到这一点?

CrudRepository:

import java.util.Optional;

import org.springframework.data.repository.CrudRepository;

public interface MeetingRepository extends CrudRepository<Meeting, Long>{
Optional<Meeting> findByMeetingId(Long id);
}

异常:

@ResponseStatus(HttpStatus.CONFLICT) // 409
class MeetingDoesNotExistException extends RuntimeException{
public MeetingDoesNotExistException(long meetingId){
super("Meeting " + meetingId + " does not exist.");
}
}

最佳答案

尝试传递 Supplier<MeetingDoesNotExistException> 类型的 lambda 表达式:

Meeting meeting = 
meetingRepository.findByMeetingId(meetingId)
.orElseThrow(() -> new MeetingDoesNotExistException(meetingId));

关于java - Spring CrudRepository .orElseThrow(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26727812/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com