2013-01-15 26 views
1

我正在使用JPA 2爲我的應用程序中的某些實體建模。在某些模型中,有些特定列的值在插入時填充。這樣的列的一個例子是:使用JPA 2插入時獲取自動生成的值

@Temporal(TemporalType.TIMESTAMP) 
@Column(name = "timestamp", nullable = false, insertable = false, updatable = false) 
private Calendar timestamp; 

現在我想的是在保存,列的生成值將被自動填充,以便它可以從應用程序代碼。使用Hibernate,我可以使用@Generated註釋,但是我想保留ORM特定的代碼,並僅使用本機JPA。

只有原生JPA,這可能嗎?

提前感謝您的時間。

+0

那麼你想從數據庫或應用程序自動填充? –

+0

理想的數據庫。如果我從應用程序填充字段,我不會遇到這個問題,因爲我只需要設置'insertable =「true」' –

+0

IMO:在嚴謹的企業應用程序中使用純JPA幾乎是不可能的。無論如何,使用ORM的特定功能應該不成問題;切換持久性提供者與切換DBMS一樣不好。此外,您始終可以隨意將應用程序部署到持久性提供程序中,但卻無法真正解決兼容性問題。 – Gimby

回答

0

如果你想在JPA中保持這種邏輯,我認爲生命cycle listeners可能會有所幫助。

相關問題