簡體   English   中英

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

[英]how to update fields of primary key using hibernate

在使用spring數據jpa的某些情況下,我需要在某些情況下更新表的主鍵的某些字段jpa.Im使用jpa存儲庫的save方法來保存更改,當更改的列包含主鍵的一部分時,它將給出異常。

當更新的文件包含primary key一列時,我當前正在跟蹤以下異常。

org.springframework.orm.ObjectOptimisticLockingFailureException

有沒有一種方法可以安全地更新主鍵字段。

如果pk更改了,那么國外的情況如何,您需要在子表上復制此更改嗎? 無論如何,如果您需要在休眠狀態下更改pk值,則必須添加一個唯一的id列,將其映射為屬性ID而不是實際pk,而不更改實際pk。 但永遠不要更改pk是個好主意。

無需修改主鍵的值。 僅僅因為每次修改也意味着修改外鍵值。

但是有解決這種情況的方法:

  • 將當前的主鍵轉換為唯一鍵。
  • 添加一個數字或uuid列,其中包含一個生成的技術(即非業務)主鍵。
  • 不幸的是,您必須更新所有從屬表(模式和值),以便它們指向新的主鍵。 但是,當數據庫脫機時,此操作必須執行一次。

這樣,它對於查詢表的其他應用程序應該是透明的,其查詢不會更改。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM