java - Setter 没有按照应有的方式在 SpringBoot 项目中保存变量
问题描述
我想验证用户可以提交到我的 Web 应用程序的最大团队数。在我的SubmitService
我有 2 种方法可以对我的int counting
变量进行操作
public void increment (@ModelAttribute Submit submit) {
submit.setCounting(submit.getCounting() +1);
}
public void decrement (@ModelAttribute Submit submit) {
submit.setCounting(submit.getCounting()-1);
}
我Submit
验证最大计数的模型 - 4。
@Entity
public class Submit {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
@NotBlank(message = "Please enter your team name")
private String name;
private String rank;
private String email;
private String leader;
private Integer score = 0;
private Integer wins = 0;
private Integer loses = 0;
private Integer draws = 0;
@Max(4)
private int counting = 0;
public Submit() {
}
因此,如果用户执行 Post =counting+1
@PostMapping("/submit")
public String submitForm (@Valid @ModelAttribute("submit") Submit submit, BindingResult bindingResult, Model model) {
if (submit.getCounting()>=4) {
return "submit_max";
}
else if (bindingResult.hasErrors()) {
List<String> rank = Arrays.asList("I", "II", "III", "IV", "V", "VI", "X" );
model.addAttribute("rank", rank);
return "submit_form";
} else {
submitService.increment(submit);
submitRepo.save(submit);
System.out.println(submit.getCounting());
return "submit_ok";
}
}
它正确添加,在 DEBUG 模式下,第一次提交的团队从 0 增加到 1,但是在第二个 Post 中,计数再次从 0 增加到 1,而不是从 1 到 2,因为它应该是......我不明白那里?
解决方案
推荐阅读
- javascript - 如何在写入文件时阻止对文件的访问,并在文件写入后恢复执行?
- sql - 与另一个表的最大值合并
- tensorflow - 最大化训练和验证准确性是否有意义?
- java - 使用 @ImportResource 导入 XML 配置不起作用
- vba - 使用 zoho sheet 的 vba 脚本导致的“未知错误”是什么
- python - 将输入输入到 resnet18 onnx 模型(Resnet18 部署用于视频文件中的对象检测)
- android - 应用程序在后台运行后断开与白名单的链接
- python - 带有 __slots __ 的类实例的 Monkeypatch 方法
- amazon-web-services - Elastic Beanstalk AWS 中的环境与应用程序
- php - 比较来自两个 JSON 对象/数组的值