我正在使用JPArepository.save()将记录插入数据库,但它会自动更新数据库中的现有记录。我想做的是,如果数据库中存在具有相同主键的记录,则让它抛出异常。
我在谷歌搜索了一下解决方案,发现一个解决方案说使用saveAndFlush而不是save可以解决它。但是,在我使用saveAndFlush之后,它仍然更新现有的记录。
我正在使用JPArepository.save()将记录插入数据库,但它会自动更新数据库中的现有记录。我想做的是,如果数据库中存在具有相同主键的记录,则让它抛出异常。
我在谷歌搜索了一下解决方案,发现一个解决方案说使用saveAndFlush而不是save可以解决它。但是,在我使用saveAndFlush之后,它仍然更新现有的记录。
2条答案
按热度按时间jtjikinw1#
最后,我找到了解决方案。我只是实现了Persistable接口,并覆盖isNew()使其始终为真。
示例:
4xrmg8kj2#
在JPA中,没有现成的UPDATE,无法只执行INSERT。
您需要在JpaRepository上定义自己的INSERT方法,然后从代码中调用它。
然后在代码中插入: