Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java PKEY和FKEY案例在同一个表中出现问题_Java_Mysql_Hibernate - Fatal编程技术网

Java PKEY和FKEY案例在同一个表中出现问题

Java PKEY和FKEY案例在同一个表中出现问题,java,mysql,hibernate,Java,Mysql,Hibernate,我有一个表,其中一个字段ID作为主键,另一个字段PID作为ID字段的外键。两者都是长数据类型 这是我的表结构 CREATE TABLE `myobj` ( `ID` BIGINT(100) NOT NULL AUTO_INCREMENT, `FRIENDLY_NAME` VARCHAR(100) DEFAULT NULL, `PARENT_ID` BIGINT(100) DEFAULT NULL, `PARENT` VARCHAR(100) DEFAULT NULL, PRIMARY KEY (

我有一个表,其中一个字段ID作为主键,另一个字段PID作为ID字段的外键。两者都是长数据类型

这是我的表结构

CREATE TABLE `myobj` (
`ID` BIGINT(100) NOT NULL AUTO_INCREMENT,
`FRIENDLY_NAME` VARCHAR(100) DEFAULT NULL,
`PARENT_ID` BIGINT(100) DEFAULT NULL,
`PARENT` VARCHAR(100) DEFAULT NULL,
PRIMARY KEY (`ID`),
KEY `PARENT_ID` (`PARENT_ID`),
CONSTRAINT `myobj_ibfk_1` FOREIGN KEY (`PARENT_ID`) REFERENCES `myobj` (`ID`) ON DELETE CASCADE
) ENGINE=INNODB AUTO_INCREMENT=7 DEFAULT CHARSET=latin1
我使用Hibernate作为ORM插入MySQL数据库。问题是

当一个或多个记录将是顶级且没有父id时,插入顶级记录时出错。在没有父id的情况下,它看起来像 它将只接受NULL

但从Java应用程序代码的角度来看,数据类型很长,因此当我通过Hibernate插入一个默认值为0的对象时,它看起来像是违反了约束

无法添加或更新子行:a 外键约束失败 (
genericdb
myobj
,约束
myobj_ibfk_1
外键 (
PARENT_ID
)参考资料
myobj
ID
)在删除级联上)

通过sql CLI将0设置为值时也会出现此问题

第二次会议:

还尝试将父\u ID的默认值设置为0

CREATE TABLE `myobj` (
`ID` BIGINT(100) NOT NULL AUTO_INCREMENT,
`FRIENDLY_NAME` VARCHAR(100) DEFAULT NULL,
`PARENT_ID` BIGINT(100) DEFAULT '0',
`PARENT` VARCHAR(100) DEFAULT NULL,
PRIMARY KEY (`ID`),
KEY `PARENT_ID` (`PARENT_ID`),
CONSTRAINT `myobj_ibfk_1` FOREIGN KEY (`PARENT_ID`) REFERENCES `myobj` (`ID`) ON DELETE CASCADE
) ENGINE=INNODB AUTO_INCREMENT=2 DEFAULT CHARSET=latin1
所以,当我将0插入到Parent_ID字段中时,仍然存在错误

无法添加或更新子行:a 外键约束失败 (
genericdb
myobj
,约束
myobj_ibfk_1
外键 (
PARENT_ID
)参考资料
myobj
ID
)在删除级联上)


如果这里有什么问题,请告诉我

问题是您试图指向myobj中id为0的行,该行不存在。该列的默认值应为null

我很确定,如果您从myobj运行
select*,其中id=0
,您将不会得到任何结果