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

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=?

在此标明,谨防在使用中写入此类代码。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值