我的場景很簡單。我在@Entity
類的entityID
標識字段和DB(甲骨文,這我不知道的事項):如何在持續使用之前使用生成的序列號?
@Id
@SequenceGenerator(name="ENTITY_SEQ_GEN", sequenceName="SEQ_GENERIC", allocationSize = 1)
@GeneratedValue(strategy=GenerationType.SEQUENCE, generator="ENTITY_SEQ_GEN")
@Column(name="ENTITY_ID")
private long entityID;
我有另一個叫場,讓我們說,entityReadableID
這應該是由一個String字符串化的實體ID與實體中的另一個字符串字段連接起來。例如。如果entityID是,entityReadableID可能類似於1234ABC。
我的問題是,據我所知,在數據庫中創建行之前entityID的值是未知的,但我需要使用它的值連接entityReadableID。有沒有辦法在數據庫中創建行之前獲取序列生成ID的值,以便我可以使用它來生成其他ID?我知道我可以使它成爲一個插入字段爲空,然後進行更新,一旦我知道什麼entityID是,但該解決方案似乎不夠優雅。
我期望Hibernate/Oracle可能支持這種方式的方式是,如果Hibernate可以以某種方式爲實際持久化之前正在處理的實體「保留/發出」下一個生成的值,讓我知道它是什麼,所以我可以操縱它,然後最後堅持它。
爲什麼你有這個領域的第一個地方?這是多餘的,因爲它是兩個其他字段串聯的結果。 –
,因爲它需要默認生成,顯示在用戶界面中,那麼用戶可以更改它(如果他選擇的話) – amphibient
然後恐怕您必須堅持(並刷新)沒有此字段的實體,並且然後計算它。 –