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);
}