Java 使用Spring数据/Hibernate:ORA-01407删除:无法更新为Null
我正在尝试使用中的Java 使用Spring数据/Hibernate:ORA-01407删除:无法更新为Null,java,spring,oracle,hibernate,Java,Spring,Oracle,Hibernate,我正在尝试使用中的deleteAll()方法从数据库中删除某个表中的行 当我这样做时,我得到了与我的狗表,row DOG_OWNER相关的错误: ORA-01407: Cannot update DOG_OWNER to Null 修复程序是否只是为了删除此行上的非空约束,或者是否有其他解决方法?下面是一个简化场景,该场景使用外键不可为空,并使用on DELETE SET null上的约束,这将导致删除引用键后报告的错误 在这种情况下,确实有助于解除外键上的notnull约束 create t
deleteAll()
方法从数据库中删除某个表中的行
当我这样做时,我得到了与我的狗表,row DOG_OWNER相关的错误:
ORA-01407: Cannot update DOG_OWNER to Null
修复程序是否只是为了删除此行上的
非空约束
,或者是否有其他解决方法?下面是一个简化场景,该场景使用外键
不可为空,并使用on DELETE SET null
上的约束,这将导致删除引用键后报告的错误
在这种情况下,确实有助于解除外键上的notnull
约束
create table dog_owner
(id number);
alter table dog_owner add primary key (id);
insert into dog_owner values (1);
create table dog
(id number,
dog_owner_id number not null); -- foreign key is not nullable ..
alter table dog add primary key (id);
alter table dog add foreign key (dog_owner_id) references dog_owner(id)
ON DELETE SET NULL; -- but the contrains sets is to null...
insert into dog values (1,1);
commit;
delete from dog_owner where id = 1;
-- SQL-Fehler: ORA-01407: cannot update ("SCHEMA_NAME"."DOG"."DOG_OWNER_ID") to NULL
alter table dog modify (dog_owner_id number null);
delete from dog_owner where id = 1;
-- 1 rows deleted
添加相关实体和执行
deleteAll
操作的代码如果DOG\u OWNER
不可为空,则应删除引用的DOG
条目,因为DOG\u OWNER是行,我正在尝试删除DOG表中的行如果日志中有休眠的sql打印设置,您能用日志中的sql更新您的问题吗?