我的 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 或更高版本)。”</p>
我的 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 default Repository for library Library[eclipselink] http://download.java.net/maven/2/hibernate-support default库库的存储库[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]
如果我去掉对hibernate 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。
正如您可能知道的那样,我接到了一个项目,但不知道我在做什么。任何帮助将不胜感激。
我尝试升级到 hibernate 4,但这导致了许多问题,我希望尽可能接近我使用的版本。