Hibernate 工具无法识别多对多关系
Hibernate Tools not recognizing many to many relation
当我尝试自动生成我的实体 classes 时,hibernate 工具会生成多对多 class 而不会生成多对多。这些是我的表格:
CREATE TABLE `role`(
`id` int(13) not null auto_increment,
name varchar(255),
primary key(id)
);
CREATE TABLE `user`(
`id` int(13) not null auto_increment,
`username` varchar(255),
`password` CHAR(60) CHARACTER SET latin1 COLLATE latin1_bin,
`passwordconfirm` BIT(1) DEFAULT b'0',
primary key(id)
);
CREATE TABLE `role_user`(
`role_id` int(13) not null,
`user_id` int(13) not null,
CONSTRAINT `FK_User_Role` FOREIGN KEY (`role_id`) REFERENCES `role`(`id`),
CONSTRAINT `FK_Role_User` FOREIGN KEY (`user_id`) REFERENCES `user`(`id`)
);
这些是我的课程:
并且在 classes 中,他们将他们的关系映射为一对多。我已将 "auto detect many to many relations" 选项设置为活动状态,所以,我不知道这是什么问题。
有什么帮助吗?提前致谢!
好吧,经过几个小时的尝试,但没有得到解决方案,我 post 这个和五分钟后我找到了解决方案:我在 table "role_user" 中添加了PRIMARY KEY (role_id
, user_id
) 这句话,所以,它起作用了!我把这个留给有同样问题的人。
当我尝试自动生成我的实体 classes 时,hibernate 工具会生成多对多 class 而不会生成多对多。这些是我的表格:
CREATE TABLE `role`(
`id` int(13) not null auto_increment,
name varchar(255),
primary key(id)
);
CREATE TABLE `user`(
`id` int(13) not null auto_increment,
`username` varchar(255),
`password` CHAR(60) CHARACTER SET latin1 COLLATE latin1_bin,
`passwordconfirm` BIT(1) DEFAULT b'0',
primary key(id)
);
CREATE TABLE `role_user`(
`role_id` int(13) not null,
`user_id` int(13) not null,
CONSTRAINT `FK_User_Role` FOREIGN KEY (`role_id`) REFERENCES `role`(`id`),
CONSTRAINT `FK_Role_User` FOREIGN KEY (`user_id`) REFERENCES `user`(`id`)
);
这些是我的课程:
并且在 classes 中,他们将他们的关系映射为一对多。我已将 "auto detect many to many relations" 选项设置为活动状态,所以,我不知道这是什么问题。
有什么帮助吗?提前致谢!
好吧,经过几个小时的尝试,但没有得到解决方案,我 post 这个和五分钟后我找到了解决方案:我在 table "role_user" 中添加了PRIMARY KEY (role_id
, user_id
) 这句话,所以,它起作用了!我把这个留给有同样问题的人。