首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Spring JPA更新操作

Spring JPA更新操作
EN

Stack Overflow用户
提问于 2015-06-01 23:51:27
回答 1查看 228关注 0票数 0

我正在开发Spring JPA。作为其中的一部分,我必须在忽略一些属性的情况下更新实体。下面的代码用于实现更新操作。

代码语言:javascript
运行
复制
@Transactional
    public void updateDMove(DTCRto jsonRto){
        //copyProperties(Object source, Object target, String[] ignoreProperties) 
        DMove dMoveDB = dMoveRepo.findDMove(jsonRto.getLn(), jsonRto.getDriver(), jsonRto.getType());
        DMove dMoveRto = jsonRto.convertToDMove(jsonRto);
        BeanUtils.copyProperties(dMoveRto,drayMoveDB, new String[] {"moveId", "created","lastchange","locations","status"});
        dMoveRepo.save(dMoveDB);
    }

DMove :需要更新的模型类。dMoveRepo :各自的存储库类。dMoveRto :传入对象。dMoveDb :数据库中存在的对象。moveId :是DMove类中的PK。

有人能给我推荐一下在Spring JPA中实现更新操作的方法吗?

谢谢。

EN

回答 1

Stack Overflow用户

发布于 2015-06-02 01:45:47

detached entity passed to persist意味着hibernate不能识别您传递给update的实体,因为dMoveDB不是persistent对象,当您使用BeanUtils.copyProperties(dMoveRto,drayMoveDB, new String[] {"moveId", "created","lastchange","locations","status"});这一行时,您会丢失这一点

我建议您删除moveId,以便您尝试更新的实体保留其原始主键并保留为persistent对象。

最后一件事,必须确保从dMoveRepo.findDMove(...)获得的对象不是null

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

https://stackoverflow.com/questions/30577867

复制
相关文章

相似问题

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