簡體   English   中英

休眠單向oneToMany FK 0而不是真實ID

[英]Hibernate unidirectional oneToMany FK 0 instead of true ID

我現在正處於休眠狀態,並且與oneToMany關系掙扎了幾天。 我希望有人可以幫助我...

我有2個實體:一個版本和一個更改日志。 一個版本具有更改日志列表。

版本實體:

@Table(name="change_log_version")
@Entity
public class ChangeLogVersionEntity {
  ...
  @OneToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL)
  @JoinColumn(name= "version_id")
  public List<ChangeLogEntity> changeLogEntities = new ArrayList<>();
  ...

更改日志實體:

@Table(name="change_log")
@Entity
public class ChangeLogEntity {
  ...
  @Column(name="version_id")
  private long versionId;
  ...

現在我可以:

  1. 創建一個Version對象
  2. 創建一個更改日志對象
  3. 創建一個列表,並將更改日志對象從2.綁定到該列表
  4. 將對象從3設置為Version對象的列表
  5. 從我注入的版本庫中調用save()方法並保存版本對象
  6. 將版本插入到版本表中,並將更改日志插入到帶有FK到版本的更改日志版本中。

到目前為止工作正常,只有我的FK不會在更改日志對象中得到更新(請參閱附件)

在調試上述流-> FK時,即使IDS正確設置,FK仍為0

我找到了解決我的問題的解決方案:為了將版本引用到更改日志中,我將版本的主鍵用作更改日志的外鍵。 我的@oneToMany映射工作正常。 我的更改日志實體包含fk,也導致了我的問題。 fk不應屬於您要由所有者類引用的實體(子代)的一部分。 刪除fk后,一切正常。

暫無
暫無

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

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