我想在 jpa 存储库中禁用合并。应该只能创建新记录并禁止更新旧记录。
那么,如果我从 JpaRepository
扩展,如何禁用存储库记录的更新?
最佳答案
使您的实体不可变可以阻止托管实体发生更改,因此不会在事务中传播任何更改。
但是,如果您传递了分配了 id 的不可变记录并且它已经存在于数据库中,它不会停止 hibernate 更新数据库记录。
所以我认为您可以查看
@PreUpdate
实体监听器并抛出异常。所以如果有人试图更新,它会抛出异常并且更新不会发生。但最好的方法是创建隐藏存储库的服务
服务在
保存
之前执行查找
以避免第二点使实体不可变以确保第一点。
关于java - Spring jpa 禁用合并,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63232528/