簡體   English   中英

休眠(NetBeans 7.1.2,Maven)無法使用ElementCollection屬性

[英]Hibernate, (netbeans 7.1.2, maven) unable to use ElementCollection attribute

我的SQL數據庫具有“項目”表。 每個“項目”可以有許多備用標簽。 它們存儲在另一個名為“ ItemAltLabel”的表中。 外鍵是“ ItemID”。

我試圖在java中將此表示為具有一組字符串備用標簽的實體。

我的財產看起來像這樣:

@ElementCollection
@CollectionTable(name="ItemAltLabel", joinColumns=@JoinColumn(name="ItemID"))
@Column(name="Label")
private Set<String> alternateLabels;

這是正確的嗎?

我得到的錯誤是:

org.springframework.beans.factory.BeanCreationException:創建名稱為'entityBroker'的bean時出錯:自動連接依賴項的注入失敗; 嵌套的異常是org.springframework.beans.factory.BeanCreationException:無法自動連線字段:受保護的org.hibernate.SessionFactory com.porism.dao.BaseBroker.sessionFactory; 嵌套的異常是org.springframework.beans.factory.BeanCreationException:創建在ServletContext資源[/WEB-INF/springmvc-servlet.xml]中定義的名稱為'sessionFactory'的bean時出錯:調用init方法失敗; 嵌套的異常是org.hibernate.MappingException:無法確定類型:java.util.Set,用於列:[org.hibernate.mapping.Column(Label)]

我發現了這篇文章,這表明我正在使用的休眠版本存在錯誤:

http://blog.m1key.me/2010/06/orghibernatemappingexception-could-not.html

“如果在類似情況下遇到此錯誤,則原因是您的Hibernate實現中存在錯誤,因此您應該獲得更新的錯誤(我建議使用3.5.3-Final或更高版本)。”

我的pom文件涉及3個休眠依賴項:

<dependency>
  <groupId>org.hibernate</groupId>
  <artifactId>hibernate</artifactId>
  <version>3.2.5.ga</version>
</dependency>
<dependency>
  <groupId>org.hibernate</groupId>
  <artifactId>hibernate-entitymanager</artifactId>
  <version>3.3.2.GA</version>
</dependency>
<dependency>
  <groupId>org.hibernate</groupId>
  <artifactId>hibernate-core</artifactId>
  <version>3.3.2.GA</version>
</dependency>

我曾嘗試將它們更新為3.5.3-Final(如文章所暗示)。

我的存儲庫如下所示:

http://ftp.ing.umu.se/mirror/eclipse/rt/eclipselink/maven.repo eclipselink默認庫庫的存儲庫[eclipselink] http://download.java.net/maven/2/ hibernate支持默認圖書館資料庫的圖書館[hibernate-support]

我在嘗試構建項目時遇到的錯誤是:

無法在項目InformWebServices上執行目標:無法為項目porism解決依賴項:InformWebServices:war:1.0:無法將工件org.hibernate:hibernate:jar:3.5.3-Final從/到eclipselink(http:// ftp。 ing.umu.se/mirror/eclipse/rt/eclipselink/maven.repo):與http://ftp.ing.umu.se的連接被拒絕:連接超時:連接-> [幫助1]

如果刪除對休眠3.5.3-Final的依賴關系,則其他兩個依賴關系將成功下載。 項目建設; 但出現新錯誤:

org.springframework.beans.factory.BeanCreationException:創建名稱為'entityBroker'的bean時出錯:自動連接依賴項的注入失敗; 嵌套的異常是org.springframework.beans.factory.BeanCreationException:無法自動連線字段:受保護的org.hibernate.SessionFactory com.porism.dao.BaseBroker.sessionFactory; 嵌套的異常是org.springframework.beans.factory.BeanCreationException:創建在ServletContext資源[/WEB-INF/springmvc-servlet.xml]中定義的名稱為'sessionFactory'的bean時出錯:調用init方法失敗; 嵌套的異常為java.lang.NoClassDefFoundError:無法初始化類org.hibernate.cfg.AnnotationConfiguration

我正在使用NetBeans 7.1.2和Maven。

如您所知,我已經獲得了一個項目,卻不知道我在做什么。 任何幫助將不勝感激。

我曾嘗試升級到休眠4,但這會導致很多問題,因此我希望保持與正在使用的版本盡可能接近。

不確定org.hibernate:hibernate依賴關系是指什么。 但這肯定不是我們(Hibernate團隊)生產的罐子。

您只需指定org.hibernate:hibernate-entitymanager依賴項就可以了。 實際上,它將傳遞org.hibernate:hibernate-core。 這些是應該升級到3.5+的

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM