两个表,codedb和userdb
有主外键关系,codedb是主表,userdb是外键表myeclipse链接数据库后,在表右键,点击Hibernate Reverse Engineering,用向导创建映射文件
提示个错误:
An internal error occurred during: "Generating Artifacts".
Foreign key (FKCE2B3189A4523203:userdb [sex])) must have same number of columns as the referenced primary key (codedb [code,type])
请问怎么回事啊,要怎么创建呢

解决方案 »

  1.   

    主外键关系的字段类型要一致你现在这里的主键由两个字段(code,type)组成,但是外键却只有一个字段,当然出错啦~
      

  2.   

    codedb用的联合主键,有什么方法能解决吗我的表结构:CREATE TABLE `codedb` (
      `code` int(11) NOT NULL,
      `text` varchar(50) default NULL,
      `type` varchar(15) NOT NULL,
      `flag` char(1) NOT NULL default 'T',
      PRIMARY KEY  (`code`,`type`)
    ) ENGINE=InnoDB DEFAULT CHARSET=gbk;CREATE TABLE `userdb` (
      `id` int(11) NOT NULL auto_increment,
      `username` varchar(50) NOT NULL,
      `password` varchar(50) NOT NULL,
      `sex` int(11) NOT NULL,
      `pname` varchar(50) NOT NULL,
      `flag` char(1) NOT NULL default 'T',
      PRIMARY KEY  (`id`),
      KEY `FK_userdb` (`sex`),
      CONSTRAINT `FK_userdb` FOREIGN KEY (`sex`) REFERENCES `codedb` (`code`)
    ) ENGINE=InnoDB DEFAULT CHARSET=gbk;
      

  3.   

    CREATE TABLE `codedb` (
      `code` int(11) NOT NULL,
      `text` varchar(50) default NULL,
      `type` varchar(15) NOT NULL,
      `flag` char(1) NOT NULL default 'T',
      PRIMARY KEY  (`code`,`type`)
    ) ENGINE=InnoDB DEFAULT CHARSET=gbk;CREATE TABLE `userdb` (
      `id` int(11) NOT NULL auto_increment,
      `username` varchar(50) NOT NULL,
      `password` varchar(50) NOT NULL,
      `code` int(11) NOT NULL,
      `pname` varchar(50) NOT NULL,
      `flag` char(1) NOT NULL default 'T',
      PRIMARY KEY  (`id`),
      KEY `FK_userdb` (`code`),
      CONSTRAINT `FK_userdb` FOREIGN KEY (`code`) REFERENCES `codedb` (`code`)
    ) ENGINE=InnoDB DEFAULT CHARSET=gbk;
      

  4.   

    数据结构有问题啊
    你的userdb中只有code指向codedb。而你的codedb中pk为code和type
    如何通过userdb中的code唯一确定codedb 中的记录?
      

  5.   

    Foreign key (FKCE2B3189A4523203:userdb [sex])) must have same number of columns as the referenced primary key (codedb [code,type]) 
    你的userdb中只有code指向codedb。而你的codedb中pk为code和type 
    5楼顶!