2012-12-05 22 views
0

由於this question,我在4.1.8中發現了一個Hibernate 3.6.x中的錯誤。我通過刪除common/lib中的hibernate庫並用新的替換掉了JBoss 6.1的「升級版」。在JBoss 6.1中對SQLServer使用Hibernate 4.1.8時出錯

更具體地說,我做了刪除:

  • 休眠-公地annotations.jar(替換休眠公地的註解 - 4.0.1.Final.jar)

  • 休眠核心的.jar(由休眠核-4.1.8.Final.jar取代)

  • 休眠-entitymanager.jar(由休眠-的EntityManager-4.1.8.Final.jar取代)

  • 的Hibernate JPA-2.0-api.jar文件(由Hibernate,JPA-2.0-API 1.0.1.Final.jar取代)

我沒有保持hibernate-validator.jarhibernate-validator-legacy.jar因爲我沒有找到一個很可能爲他們承擔責任。

現在,服務器啓動時不會抱怨,但是當它試圖將實體與boolean屬性映射,它試圖創建於2008年的SQLServer(使用類型bit)一boolean字段,導致未創建這些表。儘管如此,沒有boolean屬性的表格確實有效。

我做錯了什麼?我的persistence.xml在升級之前工作正常沒有改變,我沒有找到一個新的SQLServer方言的參考,所以我假設我的升級過程是拙劣的,我留下了一些東西。有什麼建議麼?

只是爲了記錄在案,我使用JBoss6.1,JPA2.0基於Hibernate和SQL Server Express的頂部提前2008年

感謝。

回答

1

在您的布爾字段的註釋中,嘗試指定columnDefinition

@Column(name="IS_APPROVED", columnDefinition="bit") 
private boolean isApproved; 
+0

好的,這個工作,謝謝(到目前爲止,我只能測試表創建過程)。無論如何,我認爲這是一種解決方法;因爲此解決方案將我的應用程序綁定到代碼中的SQLServer,所以我失去了JPA的一些優勢。在接受這個答案之前,我會等待更多的「標準」答案(如果存在的話)。 – SJuan76

+0

@ Sjuan76也許你會得到一個更好的答案,但總是很高興知道有一個解決方案。祝你好運! –

+0

我想我會嘗試轉移到JBoss 7.1 – SJuan76

相關問題