Was ist der richtige Weg, um eine Ausnahme zu werfen, wenn eine Datenbankabfrage leer zurückgibt? Ich versuche, die .orElseThrow()
Methode zu verwenden, aber es wird nicht kompilieren:Spring CrudRepository .orElseThrow()
Meeting meeting = meetingRepository.findByMeetingId(meetingId).orElseThrow(new MeetingDoesNotExistException(meetingId));
Der Compiler sagt:
„er Methode orElseThrow (Lieferant) in dem optionalen Typ ist für die nicht anwendbar Argumente (MeetingRestController.MeetingDoesNotExistException)
Ist es möglich, dies mit Lambda-Ausdrücke zu tun?
Cr udRepository:
import java.util.Optional;
import org.springframework.data.repository.CrudRepository;
public interface MeetingRepository extends CrudRepository<Meeting, Long>{
Optional<Meeting> findByMeetingId(Long id);
}
Ausnahme:
@ResponseStatus(HttpStatus.CONFLICT) // 409
class MeetingDoesNotExistException extends RuntimeException{
public MeetingDoesNotExistException(long meetingId){
super("Meeting " + meetingId + " does not exist.");
}
}
Arbeitete! Vielen Dank! – szxnyc