spring_data_jpa 执行update操作时的bug(个人认为是bug)

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)】在此标明,谨防在使用中写入此类代码。

    推荐阅读