Hibernate实体'补丁'/部分更新

时间:2014-09-18 11:14:20

标签: java hibernate jpa orm

在休眠状态下,我希望用PATCH的rest api调用传递一个实体为'half'的现有实体。

所以在这里,HalfEntity将是一个基于其他api用户可以发送的内容的getter和setter的pojo,这将是Entity的一个子集。

是否有最快的方法在实体的“一半”中为实体分配新值?

所以反对写这个负载...

Entity.setValue(HalfEntity.getValue());
Entity.setValue2(HalfEntity.getValue2());
Entity.setValue3(HalfEntity.getValue3());
Entity.setValue5(HalfEntity.getValue5());

......我想写这个:

Entity.patch(HalfEntity);

这可能吗?

1 个答案:

答案 0 :(得分:1)

你可以这样做:

public void patch(Object halfEntity) throws IllegalArgumentException, IllegalAccessException{
    for(Field f:halfEntity.getClass().getDeclaredFields()){
        f.setAccessible(true);
        f.set(this, f.get(halfEntity));
    }
}