【发布时间】:2012-05-24 08:34:30
【问题描述】:
我的 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 中定义的名称为“sessionFactory”的 bean 资源[/WEB-INF/springmvc-servlet.xml]:init方法的调用 失败的;嵌套异常是 org.hibernate.MappingException: 不能 确定类型:java.util.Set,列: [org.hibernate.mapping.Column(标签)]
我发现了这篇文章,这表明这是我正在使用的 hibernate 版本中的一个错误:
http://blog.m1key.me/2010/06/orghibernatemappingexception-could-not.html
“如果您在类似情况下遇到此错误,原因是您的 Hibernate 实现中存在错误,您应该获得更新的错误(我推荐 3.5.3-Final 或更高版本)。”
我的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-Final(如帖子所示)。
我的存储库如下所示:
http://ftp.ing.umu.se/mirror/eclipse/rt/eclipselink/maven.repo 日食链接 默认 库库的存储库[eclipselink] http://download.java.net/maven/2/ 休眠支持 默认 库库的存储库[hibernate-support]
我在尝试构建项目时遇到的错误是:
无法在 InformWebServices 项目上执行目标:无法解决 项目 porism 的依赖项:InformWebServices:war:1.0:不能 从/到传输工件 org.hibernate:hibernate:jar:3.5.3-Final 日食链接 (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 中定义的名称为“sessionFactory”的 bean 资源[/WEB-INF/springmvc-servlet.xml]:init方法的调用 失败的;嵌套异常是 java.lang.NoClassDefFoundError: 不能 初始化类 org.hibernate.cfg.AnnotationConfiguration
我正在使用 NetBeans 7.1.2 和 maven。
您可能会说,我接到了一个项目,但不知道我在做什么。任何帮助将不胜感激。
我已经尝试升级到 hibernate 4,但这导致了许多问题,我希望尽可能保持与我使用的版本接近。
【问题讨论】:
标签: hibernate maven netbeans netbeans-7 entitycollection