Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.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
Hibernate 如何保存而不锁定grails上的所有表_Hibernate_Grails_Gorm_Cascade - Fatal编程技术网

Hibernate 如何保存而不锁定grails上的所有表

Hibernate 如何保存而不锁定grails上的所有表,hibernate,grails,gorm,cascade,Hibernate,Grails,Gorm,Cascade,我有一个域类,它使用另一个域类作为属性city: class Tracker { String name, value; City city; int hits; Date date; } 我使用Tracker.save()插入或更新值在长作业过程中 这是正常的,除了当我想在城市域类上更新一些东西,而跟踪器正在保存一些东西。它表示超过了锁等待超时;尝试重新启动事务。跟踪如下: 消息:超过锁定等待超时;尝试重新启动事务 保存tracker时,我不会在city中进行

我有一个域类,它使用另一个域类作为属性
city

class Tracker
{
    String name, value;
    City city;
    int hits;
    Date date;
}
我使用
Tracker.save()插入或更新值在长作业过程中

这是正常的,除了当我想在城市域类上更新一些东西,而跟踪器正在保存一些东西。它表示超过了
锁等待超时;尝试重新启动事务。跟踪如下:
消息:超过锁定等待超时;尝试重新启动事务

保存tracker时,我不会在city中进行更改,但我认为hibernate也会这样做,并锁定city域。

尝试
tracker.save(flush:true)
或在更新后刷新会话:

def sessionFactory
sessionFactory.currentSession.flush()
试试这个

class Tracker
{
    String name, value;
    City city;
    int hits;
    Date date;

    static mapping = {
        city cascade: "delete"
    }
}
这将只
级联删除
;这应该可以做到,正如您所说,在保存
跟踪器
时,您不会对
城市
进行更改

注意:还可以查看
级联逐出