首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JPARepository保存()不会将所有值更新到数据库。但会给出结果

JPARepository保存()不会将所有值更新到数据库。但会给出结果
EN

Stack Overflow用户
提问于 2019-03-27 15:44:35
回答 1查看 91关注 0票数 0

我正在尝试使用JPARepository MySQL ()更新保存表的字段。但是save()会更新为null的字段,但不会更新已经有一些值的字段。

当前在DB: place : null项计数:2中的值

新值传入temp以更新place : Noplace itemcount :1

我已经尝试了1. save(),2. saveAndFlush和@Transaction 3.在更新实体之前再次获取实体。

代码语言:javascript
复制
public Cons updateCons(Cons temp, Cons con) {

Cons tempCons = consRepository.findOneByIdAndConstId(cons.getId(),cons.getConsId());
   // tempCons.setId(cons.getId());

    log.info("before saving cons :{}, count={}",consignment.getConsId(),temp.getItemCount());
    tempCons.setItemCount(temp.getItemCount());
    tempCons.setplaceStatus("Noplace"); // this filed is currently null


    Cons result = consRepository.saveAndFlush(tempCons);
    log.info("after saving cons :{}, count={}",cons.getConsId(),result.getItemCount()); // logs the updated value on itemCount.

}

预期结果: itemcount应使用新值更新,place应使用硬编码值"Noplace“更新

实际结果:数据库中的itemcount未更新为新值。但是place是用"Noplace“更新的,但log会将新值打印为count。

EN

回答 1

Stack Overflow用户

发布于 2019-03-27 16:58:37

我的猜测是,您要么再次更改该值(在打印日志之后,在另一种方法中),要么将其作为事务的一部分运行,该事务在过程中的某处失败,因此未被提交。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55372091

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档