Hibernate Mysql 逆向工程,外键映射

来源:互联网 发布:c语言实训步骤怎么写 编辑:程序博客网 时间:2024/06/06 03:14

本人初学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