2014-11-06 59 views
0

我在OSX上使用hibernate 4.3.7.Final和Mysql 5.5.8。休眠不设置参考列

我有一个joinTable关系设置但是我的外键无法添加:

[ERROR] org.hibernate.tool.hbm2ddl.SchemaExport - HHH000389: Unsuccessful: alter table T_USER_AUTHORITY add constraint FK_fr51fcyulxn31ijiotp4fx7i5 foreign key (email) references T_USER 
[ERROR] org.hibernate.tool.hbm2ddl.SchemaExport - Can't create table 'carcloud.#sql-149c1_195' (errno: 150) 

,如果我跑SHOW ENGINE INNODB STATUS;我得到如下:

------------------------ 
LATEST FOREIGN KEY ERROR 
------------------------ 
141106 5:48:00 Error in foreign key constraint of table carcloud/#sql-149c1_123: 
foreign key (email) references T_USER: 
Syntax error close to: 

如果我运行:

alter table T_USER_AUTHORITY add constraint FK_fr51fcyulxn31ijiotp4fx7i5 foreign key (email) references T_USER (email); 

约束成功添加,注释(电子邮件)在结束时是引用公司lumn。

它设置为我的主键:

CREATE TABLE `T_USER` (
    `email` varchar(100) NOT NULL, 
    `created_by` varchar(50) NOT NULL, 
    `created_date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, 
    `last_modified_by` varchar(50) DEFAULT NULL, 
    `last_modified_date` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00', 
    `OPT_LOCK` int(11) DEFAULT NULL, 
    `first_name` varchar(50) DEFAULT NULL, 
    `last_name` varchar(50) DEFAULT NULL, 
    `password` varchar(100) DEFAULT NULL, 
    `phone` varchar(100) NOT NULL, 
    PRIMARY KEY (`email`) 
) ENGINE=InnoDB DEFAULT CHARSET=utf8; 

任何想法?

+0

[R你使用注释或XML配置进行映射? – OO7 2014-11-06 07:16:05

+0

@ OO7我使用的注释:https://gist.github.com/imduffy15/3b270c062a9fe18d57d7 – 2014-11-06 12:39:02

+0

有更多信息alfet'语法错误接近:'? – Jens 2014-11-06 12:40:43

回答

0

,我看到的唯一区别是在休眠“引用T_USER”和SQL“引用T_USER(电子邮件),”所以你应该插入调用Java代码“改变表T_USER_AUTHORITY添加约束FK_fr51fcyulxn31ijiotp4fx7i5等。”

+0

嗨@Mailkov我无法控制语句,Hibernate根据我的类自动生成它们。自动生成ddl功能 – 2014-11-06 12:38:45

+0

你可以发布你的课程吗? – Mailkov 2014-11-06 12:48:17

+0

当然@Mailkov在这里他们是:https://github.com/imduffy15/carcloud-api/blob/introduce-device-entity/src/main/java/ie /ianduffy/carcloud/domain/User.java 我会注意到,使用它对h2数据库创建约束没有问题。 – 2014-11-07 01:26:04