我正在编写一个简单的grails(2.3.1)示例应用程序,它使用postgresql(9.1) 我有两个域类'Nose'和'Face'。
//Nose class
package human
class Nose {
static belongsTo=[face:Face]
static constraints = {
face nullable: true
}
}
//Face class
package human
class Face {
static hasOne = [nose:Nose];
static constraints = {
nose nullable: true
}
}
我的数据库是空的,我正在使用静态脚手架。 现在,grails不允许我插入任何一个,因为一个具有外键约束。 此外,当我尝试直接插入postgresql数据库时,我得到相同的外键约束错误:
human=# insert into nose (id, version, face_id) values (1, 0, 1);
ERROR: insert or update on table "nose" violates foreign key constraint "fk33afd3c47bf8db"
DETAIL: Key (face_id)=(1) is not present in table "face".
OR
human=# insert into face (id, version, nose_id) values (1, 0, 1);
ERROR: insert or update on table "face" violates foreign key constraint "fk2fd65d8476fd1b"
DETAIL: Key (nose_id)=(1) is not present in table "nose".
human=#
如何解决这种死锁情况?