我們使用源代碼鏈接將生成的hibernate bean包含在eclipse中的j2ee web項目中。我們有一個包含各種公用事業和服務的項目,以及主要項目。@Web項目中的版本中斷
當我們將我們的bean導入到實用程序項目中時,bean導入正常。他們有hibernate 4.3和hibernate-jpa 2.1 jar。但是,當我將相同的模型bean導入到主項目中時,@Version註釋會導致編譯錯誤。它說:
JSR 220:Java持久性API 9.1.17:版本屬性只支持以下類型:int,Integer,short,Short,long,Long,Timestamp。
的代碼是:
@Temporal(TemporalType.TIMESTAMP)
@Column(name = "UPDT_TMSTMP", nullable = false)
@Version
private Date updateTimestamp;
這就像我說的,當導入到一個簡單的Java項目,但在導入到Web模塊(我們嘗試了)完美的作品它得到這個錯誤。錯誤文本似乎是說我們不能使用java.util.Date作爲屬性類型,但是我們再次使用它,當導入到實用工程時。
我們無法解釋爲什麼實用程序項目與web模塊之間的區別。我們希望在Web模塊中使用它,因爲我們希望能夠移動這些實用程序模塊,而無需多次導入相同的模型Bean。
任何想法?即使調查的途徑會比我們現在擁有的更好。我們正在打擊。
你確定這是一個編譯錯誤,而不是Eclipse插件的錯誤(如JPA插件)? Java編譯器不關心具有註釋的字段的類型。所以大多數情況下,錯誤來自JPA集成插件,這可能是由錯誤配置的構建路徑導致的(即,如果JPA設置爲較舊版本,則與其他項目一樣)。 – dunni
您是否嘗試使用java.sql.Date而不是java.util.Date? 您可能還會檢查數據庫是否配置爲以毫秒級精度存儲時間戳。 – fg78nc
您也可以嘗試使用java.sql.Timestamp – fg78nc