0
我有兩個具有典型主外鍵關係的實體。 EntityA中的id在EntityB中具有外鍵關係。我試圖在同一事務中堅持實體A和實體B.javax.persistence.version導致實體的Id在事務中保持爲空
Entity A
-------------------------------
@Id
@GeneratedValue(strategy = IDENTITY)
private Long id;
@Version
private Integer version;
Entity B
--------------------------------
@ManyToOne
@JsonBackReference
@JoinColumn(name = "id_fk")
private EntityA entityA;
@Version
private Integer version;
我正在使用javax.persistence.version
註釋在版本列上執行樂觀鎖定。我有兩個語句
1. entityARepository.save(entityA)
2. EntityB entityB = generateEntityB(entityA)
3. entityBRepository.save(entityB)
號3失敗,不同的是實體一個id爲空,entityB不能與實體A的ID空保存我想聲明1後使用entityManager.flush()
但實體ID的聲明當遇到第3行時,A不會生成。
如何更改代碼,以便實體A的Id得到生成並持久化,以便當entityB試圖獲取實體A的主鍵時,它不是null
?
如果要保存2個實體然後和藹POST的實體,並相互關聯的對象,然後張貼實際的SQL代碼(JPA是圍繞類,而不是面向TABLES)調用 –
看到更新的問題。謝謝! – somename
您使用的是JPA嗎?那麼你使用Entitymanager,我猜。 save方法會調用entitymanager.persist?我刪除了我的第一個問題 – aschoerk