这是我在 Spring Boot 中的项目。谁能解释一下为什么删除和更新操作会重定向到错误页面,但当返回同一页面时,更改已更新。Github 项目链接
我尝试使用映射,例如@OneToOne等。但是在使用它时出现错误
com.mysql.cj.exceptions.DataConversionException: Cannot determine value type from string 'abdul'
甚至没有显示主页。
所以当我浏览你的代码时,我发现了一些被忽略的小问题 当您点击 "/delete" 或 "/save" 用于删除或更新记录的 api 时出现问题。
1. 在
EmployeeController.java file line number 84
下 -> 将 return "redirect:/list";
更改为 return "redirect:/employees/list";
解释 - 因为它重定向到列表,而它应该重定向到员工/列表,因为 /list 位于员工目录下。
2. 与上面的
EmployeeController.java file line number 105
下相同 -> 将 return "redirect:/list";
更改为 return "redirect:/employees/list";
3.在
EmployeeServiceImpl.java file line number 37
方法下deleteEmployeeByUsername在上面添加@Transactional注释
解释 - 由于删除记录属于 DML,因此我们需要在这里使用事务管理,如果任何问题仍然存在,那么它可以回滚事务
4.在
MemberRepository.java file line number 11
下而不是Member deleteByUsername(String username);
使用void deleteByUsername(String username);
,只需将Manager替换为void,因为它不会返回任何内容
解释 - 基本上在
MemberServiceImpl.java line number 35
中,您使用的是void返回类型,而在存储库中,您使用Manager作为返回,其中当我们删除对象/记录时,它不会返回任何对象
5. 在
中不使用 agr 构造函数RoleId.java -
public RoleId() {
super();
}
and in Role.java -
public Role() {
super();
}
更改/更新所有代码后运行并查看它是否有效。
如果仍有任何问题,请随时发表评论