我的SQL數據庫有一個「Item」表。每個「項目」可以有許多替代標籤。這些存儲在另一個名爲「ItemAltLabel」的表中。外鍵是「ItemID」。Hibernate,(netbeans 7.1.2,maven)無法使用ElementCollection屬性
我想在java中將其表示爲具有一組字符串替代標籤的實體。
我的財產是這樣的:
@ElementCollection
@CollectionTable(name="ItemAltLabel", [email protected](name="ItemID"))
@Column(name="Label")
private Set<String> alternateLabels;
如果這是正確的嗎?
我得到的錯誤是:
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityBroker': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: protected org.hibernate.SessionFactory com.porism.dao.BaseBroker.sessionFactory; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in ServletContext resource [/WEB-INF/springmvc-servlet.xml]: Invocation of init method failed; nested exception is org.hibernate.MappingException: Could not determine type for: java.util.Set, for columns: [org.hibernate.mapping.Column(Label)]
我發現這個職位,這表明它處於休眠的版本中的錯誤,我使用:
http://blog.m1key.me/2010/06/orghibernatemappingexception-could-not.html
「如果你是在類似的情況下得到這個錯誤,原因是你的Hibernate實現中存在一個錯誤,你應該得到一個更新的錯誤(我推薦3.5.3-最終或更高版本)。「
我的POM文件是指3只Hibernate依賴:
<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決賽(視後建議)。
我的資料庫是這樣的:
http://ftp.ing.umu.se/mirror/eclipse/rt/eclipselink/maven.repo 的EclipseLink 默認 存儲庫庫庫[的EclipseLink ] http://download.java.net/maven/2/ 休眠支持 默認 存儲庫庫庫[休眠支持]
試圖建立項目時,我得到的錯誤是:
Failed to execute goal on project InformWebServices: Could not resolve dependencies for project porism:InformWebServices:war:1.0: Could not transfer artifact org.hibernate:hibernate:jar:3.5.3-Final from/to eclipselink (http://ftp.ing.umu.se/mirror/eclipse/rt/eclipselink/maven.repo): Connection to http://ftp.ing.umu.se refused: Connection timed out: connect -> [Help 1]
如果我刪除有關休眠3.5.3決賽的依賴,另外兩個依賴被成功下載。項目建立;但出現新錯誤:
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityBroker': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: protected org.hibernate.SessionFactory com.porism.dao.BaseBroker.sessionFactory; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in ServletContext resource [/WEB-INF/springmvc-servlet.xml]: Invocation of init method failed; nested exception is java.lang.NoClassDefFoundError: Could not initialize class org.hibernate.cfg.AnnotationConfiguration
我使用的是NetBeans 7.1.2和maven。
正如你可能知道的那樣,我已經遞交了一個項目,並且不知道我在做什麼。任何幫助將不勝感激。
我已經嘗試升級到休眠4,但這導致了一系列問題,我寧願保持儘可能接近我使用的版本。
感謝您的幫助。我發現org.hibernate:hibernate是一個pom文件,需要一個 pom 。我還必須添加一個依賴到org.slf4j:slf4j-log4j12(1.5.0) –
zod