jpa在使用update操作,通常使用的方法为先执行findOne(id)方法,在执行save(S)方法,对于只修改一条数据是没有关系的。但是对于方法查询到的其他的类,只要修改了类的变量,我们只对一个类执行save(S)方法,其他的类同样会执行updata语句。
public List updateUser(String sex) {
List testClassesList = testClassesProperties.findAll();
testClassesList.get(0).setClassesType(String.valueOf(new Date()));
List userList = userProperties.findAll();
userList.get(1).setSex(String.valueOf(new Date()));
TestUser user = userList.get(0);
user.setSex(sex);
userProperties.save(user);
return userProperties.findAll();
}
如:以上代码中 我们只对一条user进行了save(),但是在执行方法之后发现,一共执行了3条update语句,同时将user[1]和classes[0]进行了updata操作。
Hibernate: update test_classes set classes_type=? where id=?
Hibernate: update test_user set sex=? where id=?
Hibernate: update test_user set sex=? where id=?
【spring_data_jpa 执行update操作时的bug(个人认为是bug)】在此标明,谨防在使用中写入此类代码。
推荐阅读
- =======j2ee|spring用注解实现注入的@resource,@autowired,@inject区别
- jar|springboot项目打成jar包和war包,并部署(快速打包部署)
- 数据库|效率最高的Excel数据导入---(c#调用SSIS Package将数据库数据导入到Excel文件中【附源代码下载】)...
- java人生|35K 入职华为Java开发那天,我哭了(这 5 个月做的一切都值了)
- Java毕业设计项目实战篇|Java项目:在线嘿嘿网盘系统设计和实现(java+Springboot+ssm+mysql+maven)
- 微服务|微服务系列:服务发现与注册-----Eureka(面试突击!你想了解的Eureka都在这里.持续更新中......)
- java|ApplicationListener和SpringApplicationRunListener的联系
- Spring|SpringSecurity--自定义登录页面、注销登录配置
- 性能|性能工具之 Jmeter 通过 SpringBoot 工程启动
- 代码狂魔|Spring源码分析之IOC容器初始化流程