spring-boot - 如何设置 spring boot 中可选的 getter 和 setter 方法的值

标签 spring-boot option-type getter-setter

当用户注册完成时,我试图将 setIs_active 的值设置为 true,但我已将方法 findByEmail 作为可选方法,但我无法将值设置为 true。有人能告诉我这是什么原因吗?

 public String confirmAccount(String confirmationToken)
        {
            ConfirmationToken token = confirmationTokenRepository.findByConfirmationToken(confirmationToken);
            if(token != null)
            {
                Optional<User> user = userRepository.findByEmail(token.getUser().getEmail());
                user.setIs_active(true);//here I am getting error
                userRepository.save(user);//here I am getting error
                return "Your account is activated" ;
            }
            else
                return "Error ! Please try again";

        }

最佳答案

您得到可选的用户对象而不是用户对象。

方式一:

User user = userRepository.findByEmail(token.getUser().getEmail()).orElse(null);

方式二: 检查存在然后设置:

Optional<User> user = userRepository.findByEmail(token.getUser().getEmail());

    if (user.isPresent()) {
    User user1 = user.get();
    //set && save
    }

关于spring-boot - 如何设置 spring boot 中可选的 getter 和 setter 方法的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61135849/

相关文章:

ios - 我应该为将从 JSON 解析的对象模型的属性使用可选的吗?

java - 我怎样才能在对象变量中实现setter方法?请解释

java - 我应该如何设置 Firebase 实时数据库中键值类型的 getter 和 setter?

javascript - 使用 getter/setter 获取动态对象属性

java - Spring Config Server 是否有可能从自身获取配置?

java - 如何断言SpringFramework的org.springframework.http.ResponseEntity类设置的 "Content-Type"?

java - 通信链路失败 : Spring boot, MySQL、Docker

swift - 快速了解可选的全局变量

spring - 带有 IntelliJ 的 JSP

ios - 如何安全地解包我从 Firebase 中的数据库调用的这个可选 URL?