Spring boot java.util.NoSuchElementException:不存在值;ApacheCassandra-spring启动

Spring boot java.util.NoSuchElementException:不存在值;ApacheCassandra-spring启动,spring-boot,cassandra,Spring Boot,Cassandra,我正在使用下面的依赖项 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-cassandra</artifactId> </dependency> 在服务方法中,我调用了存储库 logger.info("Here : " + username); boolean user

我正在使用下面的依赖项

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-cassandra</artifactId>
</dependency>
在服务方法中,我调用了存储库

logger.info("Here : " + username);
boolean userExists = userRepository.existsById(username);
logger.info("userExists : " + userExists);
if (userExists) {
    User user = userRepository.findByusername(username).get();
    return user;
}
return null;
@Repository
public interface UserRepository extends CrudRepository<User, String> {
    Optional<User> findByusername(final String username);
}
下面是我的存储库

logger.info("Here : " + username);
boolean userExists = userRepository.existsById(username);
logger.info("userExists : " + userExists);
if (userExists) {
    User user = userRepository.findByusername(username).get();
    return user;
}
return null;
@Repository
public interface UserRepository extends CrudRepository<User, String> {
    Optional<User> findByusername(final String username);
}
假设在表中我没有一个带有用户kri_test的条目,并且用户发送了一个带有用户名kri_test的输入,那么我将面临异常java.util.NoSuchElementException:不存在值


即使它没有打印服务类中的日志语句,它也与Cassandra配置等无关。您可以从userRepository.findByusernameusername获得可选的.empty。您可以在上面调用get方法,而不首先调用isPresent

你可以用这一行解决你的问题

return userRepository.findByusername(username).orElse(null);

它与Cassandra配置等无关。您将从userRepository.findByusernameusername获得可选的.empty。您可以在上面调用get方法,而不首先调用isPresent

你可以用这一行解决你的问题

return userRepository.findByusername(username).orElse(null);

这是两个控制器,所以当我们试图调用任何控制器时,我们主要使用URL来调用任何类型的控制器。 1.您可能在URL或 2.您试图调用不在服务类内的数据

@RequestMapping("/topics")//URL
public List<Topic> getAllTopics() {
    return topicService.getAllTopics();     
}
@RequestMapping("/topics/{id}")
public Topic getTopic(@PathVariable String id){
    return topicService.getTopic(id);
}

这是两个控制器,所以当我们试图调用任何控制器时,我们主要使用URL来调用任何类型的控制器。 1.您可能在URL或 2.您试图调用不在服务类内的数据

@RequestMapping("/topics")//URL
public List<Topic> getAllTopics() {
    return topicService.getAllTopics();     
}
@RequestMapping("/topics/{id}")
public Topic getTopic(@PathVariable String id){
    return topicService.getTopic(id);
}