所以我有3个类,Category
,Question
和Comment
。
这两个类都与OneToMany
有Comment
关系。
出于某种原因,Hibernate决定对Comment
施加约束,导致以下异常:
ERROR: insert or update on table "comment" violates foreign key constraint "fknapu44p12w4v7wreaog7vgc80"
Detail: Key (q_comment)=(03f7ed17-4fa1-48d9-ac17-9842e233fde4) is not present in table "category".
Question
和Category
都必须遵循以下代码:
@OneToMany(fetch = FetchType.LAZY, cascade = {CascadeType.ALL})
@JoinColumn(name = "t_comment")
@LazyCollection(LazyCollectionOption.FALSE)
private List<Comment> comment;
似乎我可以用列表中的新Category
正确保存Comment
对象,但是当我对Question
进行相同操作时,它就会中断
那么,有谁知道这可能是什么原因造成的?
要澄清:由hibernate创建的表生成了以下sql:
create table category (id varchar(255) not null, color varchar(7), name varchar(255), parent_questionnaire varchar(255), primary key (id))
create table comment (id varchar(255) not null, comment varchar(2048), timestamp int8, sent_by varchar(255), session varchar(255), t_recommendation varchar(255), t_comment varchar(255), primary key (id))
create table question (id varchar(255) not null, question varchar(255), type int4, parent_category varchar(255), primary key (id))
alter table if exists comment add constraint FKnapu44p12w4v7wreaog7vgc80 foreign key (t_comment) references category