Java Spring jpa禁用合并
我想禁用jpa存储库中的合并。只能创建新记录并禁止更新旧记录Java Spring jpa禁用合并,java,spring,jpa,spring-data-jpa,Java,Spring,Jpa,Spring Data Jpa,我想禁用jpa存储库中的合并。只能创建新记录并禁止更新旧记录 那么,如果我从JpaRepository扩展,如何禁用存储库记录的更新?您需要的基本上是一个不可变的实体,从实体中删除setter并使用builder创建新实体。 使实体不可变可以停止对托管实体的更改,因此不会在事务中传播任何更改 但是,如果您传递了分配了id的不可变记录,并且该记录已经存在于数据库中,则不会停止hibernate更新数据库记录 所以我认为您可以查看@PreUpdate实体侦听器并抛出异常。所以,若有人试图更新,它
那么,如果我从
JpaRepository
扩展,如何禁用存储库记录的更新?您需要的基本上是一个不可变的实体,从实体中删除setter并使用builder创建新实体。- 使实体不可变可以停止对托管实体的更改,因此不会在事务中传播任何更改
- 但是,如果您传递了分配了id的不可变记录,并且该记录已经存在于数据库中,则不会停止hibernate更新数据库记录
- 所以我认为您可以查看
实体侦听器并抛出异常。所以,若有人试图更新,它将抛出异常,更新将不会发生@PreUpdate
- 但最好的方法是创建隐藏存储库和数据库的服务
- 服务在
保存之前执行
,以避免第二点查找
- 使实体不可变以确保第一点