Spring JPA Update操作

时间:2015-06-01 15:51:27

标签: spring jpa spring-data-jpa

我正在开发Spring JPA。作为其中的一部分,我必须更新一个忽略少数属性的实体。以下代码正在努力实现更新操作。

@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中实现更新操作的方法是什么?

感谢。

1 个答案:

答案 0 :(得分:0)

detached entity passed to persist表示hibernate无法识别您传递给更新的实体,因为dMoveDB不是persistent对象,当您使用此行{{1 }}

我建议您删除BeanUtils.copyProperties(dMoveRto,drayMoveDB, new String[] {"moveId", "created","lastchange","locations","status"});,以便您尝试更新的实体保留其原始主键并保留为moveId对象。

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