尝试进行ORM时,在grails中出现死锁情况

时间:2014-01-15 07:29:46

标签: postgresql grails orm

我正在编写一个简单的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=# 

如何解决这种死锁情况?

0 个答案:

没有答案