java - Spring jpa 禁用合并

标签 java spring jpa spring-data-jpa

我想在 jpa 存储库中禁用合并。应该只能创建新记录并禁止更新旧记录。
那么,如果我从 JpaRepository 扩展,如何禁用存储库记录的更新?

最佳答案

  • 使您的实体不可变可以阻止托管实体发生更改,因此不会在事务中传播任何更改。

  • 但是,如果您传递了分配了 id 的不可变记录并且它已经存在于数据库中,它不会停止 hibernate 更新数据库记录。

  • 所以我认为您可以查看 @PreUpdate 实体监听器并抛出异常。所以如果有人试图更新,它会抛出异常并且更新不会发生。

  • 但最好的方法是创建隐藏存储库的服务

  • 服务在保存之前执行查找以避免第二点

  • 使实体不可变以确保第一点。

关于java - Spring jpa 禁用合并,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63232528/

相关文章:

java - 在 java 中的 lang.properties 中存储印地语并检索它

java - 是否可以在Alertdialog中创建GridView?

java - 如何使用java从mysql过滤数据并将其显示在jtable中

java - 如何更改 Hibernate CharacterTypeDescriptor 以处理空列值

java - 如何从属性文件中将参数添加为 JPQL 中的 INTERVAL 值?

java - 从mysql数据库获取 map 标记到android应用程序

spring - org.springframework.boot.autoconfigure 无法在 eclipse 中解析

spring - 分别从 web.xml 和 web-fragment.xml 定义上下文参数

java - SQL 合并与 Java 中的检查和插入/更新

java - 来自同一实体的多个外键? (JPA hibernate )