Hibernate Mysql 逆向工程,外键映射

本人初学Hibernate时,在用Eclipse以Mysql为数据库进行逆向工程时,外键的one-to-many和many-to-one关系怎么都在domain类中生成不了。后来思考下是不是数据库外键出了问题?我用的是别人的oracle数据库的sql语句生成的表,原来oracle数据库和mysql数据库外键的生成方式不同,我的mysql数据库中表之间的外键映射关系就没有成功,才导致Eclipse在逆向工程时没有成功映射外键关系。

用Eclipse或MyEclipse进行逆向工程,早就是老生常谈的问题,此处不再赘述,在这里说一说,oracle和Mysql生成外键 的方式,此处以学生选课为例来说明,一共三张表,表的具体细节不再介绍,相信大家一看代码就能明白!

首先是oracle示例:

create table student
(sid number primary key , --这是学生的学号
sname varchar2(45) not null, --学生姓名
ssex  char(2) not null,--性别
sdept varchar2(10) not null, --所在系
sage  number(3) ,--年龄
saddress varchar2(45) --住址
)

create table course
(
cid number primary key ,--这是课程号
cname varchar2(50) not null,--课程名
ccredit number(3) --课程学分
)

create table studCourse
(
stuCourseId number primary key ,--这是一个自增的,表示一次选课

<span style="color:#ff0000;">--此处外键映射</span>
sid number  references student(sid),--学生号,
<span style="color:#ff0000;">--此处外键映射</span>
cid number references course(cid),--课程号
grade number not null--成绩
)
然后是Mysql示例:


<span style="font-size:18px;">create table student
(sid int primary key , 
sname varchar(45) not null, 
ssex  varchar(2) not null,
sdept varchar(10) not null, 
sage  int(3) ,
sadss varchar(45) 
)

create table course
(
cid int primary key ,
cname varchar(50) not null,
ccredit int(3) 
)

create table studCourse
(
stuCourseId int primary key  AUTO_INCREMENT,
sid int,
cid int ,
grade int not null,
 INDEX (sid), FOREIGN KEY (sid) REFERENCES student(sid),
 INDEX (cid), FOREIGN KEY (cid) REFERENCES course(cid)
)
最后两行是Mysql的外键映射方式</span>


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值