求助!是Hibernate联合主键错误吗?

lizhenyang 2009-11-17 04:20:10
原来发过一个帖子,没人回复,沉下去了(别人一个回的也没有,自己回了三次,不能自己继续回复/编辑/删除,郁闷~),再新发一篇帖子,如果斑竹要删除的话,希望把原帖删了吧,这篇留着,希望能有人给予帮助,多谢多谢!
原帖地址:http://topic.csdn.net/u/20091112/12/5b9f95d4-16f6-409b-9652-ca0bfa0bd088.html
----- 欲实现的功能 ----------------------------------------------------
4个表,用户表:user(userID、userName),用户组:group(groupID、ownerID),标签表:label(labelID、labelName),用户组分类:category(groupID、ownerID、cateID)。
用户user可以创建用户组group,组的名字存放在标签lable里,用户组group下可以有若干类别category,类别category的名字也存在标签label里。
实例:用户u01,创建两个群组g01、g02,群组g01里有两个分类c01、c02,群组g02里有三个分类g02、g03、g04。用户u02,创建一个群组g03,群组g03里有两个分类c01、c04。
----- 表关系 ----------------------------------------------------------

图片地址:
http://hi.csdn.net/attachment/200911/12/50460_1258000071AnCg.png

----- 工具 ------------------------------------------------------------
使用 MySQL-5.1 + hibernate-3.3.2.GA + HibernateSynchronizer-3.1.9
----- HibernateSynchronizer 自动生成的文件 ----------------------------
Category.hbm.xml文件:
<hibernate-mapping package="models">
<class name="Category" table="category">
<meta attribute="sync-DAO">true </meta>
<composite-id>
<key-many-to-one name="groupID" class="Group" column="groupID" />
<key-many-to-one name="ownerID" class="Group" column="ownerID" />
<key-many-to-one name="cateID" class="Label" column="cateID" />
</composite-id>
</class>
</hibernate-mapping>

Group.hbm.xml文件:
<hibernate-mapping package="models">
<class name="Group" table="group">
<meta attribute="sync-DAO">true </meta>
<composite-id>
<key-many-to-one name="groupID" class="Label" column="groupID" />
<key-many-to-one name="ownerID" class="User" column="ownerID" />
</composite-id>
</class>
</hibernate-mapping>
----- 错误 ------------------------------------------------------------
出错提示:
Messages:
Foreign key (FK302BCFEBC02C5B5:category [groupID])) must have same number of columns as the referenced primary key (group [ownerID,groupID])
File: org/hibernate/mapping/ForeignKey.java
Line number: 113
-----------------------------------------------------------------------
再次表示感谢!!!
...全文
198 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
ait2009 2009-11-19
  • 打赏
  • 举报
回复
@ManyToOne(cascade = { CascadeType.PERSIST, CascadeType.MERGE }, fetch = FetchType.LAZY)
youjianbo_han_87 2009-11-19
  • 打赏
  • 举报
回复
must have same number of columns as the referenced primary key (group [ownerID,groupID])

主外键数量不一致呀。。。
lizhenyang 2009-11-19
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 javaors 的回复:]
<key-many-to-one name="cateID" class="Label" column="cateID" />
这个什么意思,很奇怪,class里面没有cateId这个字段
[/Quote]
category表中的cateID是个外键,与label表中的主键labelID相关联。

同样,group表中的groupID也是外键,与label表中的主键labelID相关联;外键ownerID与user表中的主键userID相关联。
lizhenyang 2009-11-19
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 warison2008 的回复:]
程序使用问题
[/Quote]
你好!能说详细点吗?谢谢!
javaors 2009-11-17
  • 打赏
  • 举报
回复
<key-many-to-one name="cateID" class="Label" column="cateID" />
这个什么意思,很奇怪,class里面没有cateId这个字段
道光2008 2009-11-17
  • 打赏
  • 举报
回复
程序使用问题

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧