2014-06-05 30 views
1

我使用Hibernate註釋來自動生成對象的UUID。 每個對象都在一個文件服務器上獲取自己的目錄,該文件服務器由該對象的生成UUID命名。Hibernate - 取回持久對象以獲得生成的數據

@Id 
@GeneratedValue(generator = "uuid") 
@GenericGenerator(name = "uuid", strategy = "uuid2") 
@NotNull 
@Column(name = "m_uuid") 
private String mUUID; 

UUID是唯一一個讓您確定對象的唯一字段。有沒有辦法在持久化對象而不創建新的查詢後獲取生成的值?

回答

2

你的東東堅持並刷新持久化上下文:

entityManager.persist(entity); 
entityManager.flush(); 
entity.getId(); 

這樣的實體是保證連接和執行的唯一語句是INSERT之一,所以不需要一個查詢語句。

+0

我也剛剛意識到ID會在保存後保存到對象中。我會接受這個答案。 – Goot

+0

但是你也需要刷新,因爲那是當狀態改變與數據庫同步的時​​候。 –