如何让 JPArepository.save() 只插入并阻止更新?

Mic*_*sai 9 java spring hibernate spring-data-jpa

我正在使用 JPArepository.save() 将记录插入数据库,但它会自动更新数据库中的现有记录。我想做的是,如果数据库中存在具有相同主键的记录,则让它抛出异常。

我在Google中搜索了解决方案,找到了一个解决方案,说使用saveAndFlush而不是save可以解决它。但是,在我使用 saveAndFlush 后它仍然更新现有记录。

Mic*_*sai 9

最后,我找到了解决方案。我只是实现 Persistable 接口并 ovrride isNew() 使其始终为 true。

例子:

@Entity
public class ChessGame implements Persistable<Long> {
 
    @Id
    private Long id;

 
    @Override
    public boolean isNew() {
        return true;
    }
}
Run Code Online (Sandbox Code Playgroud)