jpa在使用update操作,通常使用的方法为先执行findOne(id)方法,在执行save(S)方法,对于只修改一条数据是没有关系的。但是对于方法查询到的其他的类,只要修改了类的变量,我们只对一个类执行save(S)方法,其他的类同样会执行updata语句。
public List<TestUser> updateUser(String sex) {
List<TestClasses> testClassesList = testClassesProperties.findAll();
testClassesList.get(0).setClassesType(String.valueOf(new Date()));
List<TestUser> 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=?
在此标明,谨防在使用中写入此类代码。