使用Persistable.isNew已存在具有生成ID的保存实体

时间:2019-06-05 20:19:44

标签: hibernate spring-boot jpa

我正在处理一些数据同步问题,因此我在数据库中将实体作为JSON发送给Web服务,以便可以将其保存,但需要使用现有ID进行保存。我使用Persistable.isNew()重写来确保Hibernate知道保存数据而不是尝试更新数据。根据我阅读的所有文档,这应该可以工作。并且当使用自然键时,它确实起作用。但是,当使用生成的ID策略时,它会引发Detached Entity异常。

一个简单的问题是,应该可以工作吗?如果是这样,我想念什么?

@Entity
class ColorDef implements Persistable {
    @Id
    @GeneratedValue
    private Long id;

    @Override
    public boolean isNew() {
        // for the sake of the example, return true
        return true;
    }
}

0 个答案:

没有答案