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)