如何使用休眠方式更新主键字段

时间:2019-01-03 08:31:28

标签: java hibernate spring-data-jpa

在某些情况下,当使用jpa存储库的spring数据 At version 3.5 this is loading http://biw/WebResource.axd? d=YD6HsL0OL0OOY3PrreuhMkpfOxKmZt7Eo8GRuqoPtWkBdkuS- xGYrk2u4u6XZUiq4dpaB8GXi4yJzCJpSm6e8pFIWE01&t=636253898020000000 At version 4.0 this is showing <script src="/BIW/Core/JSLibrary/WebUIValidation.js" type="text/javascript"></script> 并使用jpa存储库的save方法保存更改时,我需要更新表的主键的某些字段,当更改的列包括它提供的主键的一部分时一个例外。

当更新的文件中包含jpa.Im中的一列时,我当前正在跟踪异常。

primary key

有一种方法可以安全地更新主键字段。

2 个答案:

答案 0 :(得分:0)

如果pk发生更改,那么国外发生了什么,您需要在子表上复制此更改吗?无论如何,如果您需要在休眠状态下更改pk值,则必须添加一个唯一的id列,将其映射为属性ID而不是实际pk,而不更改实际pk。但永远不要更改pk是个好主意。

答案 1 :(得分:0)

忘记修改主键的值。仅仅因为每次修改也意味着修改外键值。

但是有解决此问题的方法:

  • 将当前主键转换为唯一键。
  • 添加一个数字或uuid列,其中包含一个生成的技术(即非商业)主键。
  • 不幸的是,您必须更新所有从属表(模式和值),以便它们指向新的主键。但是,当数据库脱机时,此操作必须执行一次。

这样,它对于查询表的其他应用程序应该是透明的,其查询不会更改。