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>


你可能感兴趣的:(oracle,mysql,Hibernate)