0

我的代码看起来像:

static Value findValue(ProjectTouchpoint touchpoint, ProjectQualifier qualifier, ProjectTargetGroup targetGroup)
    {
        def value = Value.findByProjecttouchpointAndProjectqualifierAndProjecttargetgroup(touchpoint,qualifier,targetGroup)
        if(!value) {
            value = new Value(projecttouchpoint:touchpoint, projectqualifier:qualifier, projecttargetgroup:targetGroup, value:0)
              value.save(flush:true)
        }
        return value;
    }

问题:这行代码执行大约需要 1 秒:

value = new Value(projecttouchpoint:touchpoint, projectqualifier:qualifier, projecttargetgroup:targetGroup, value:0)

我只创建了一个域类的新实例,value.save(flush:true) 只需要 0.X 秒(数据库写入)

我在一个循环中初始化了大约 10k 个值,这需要很长时间

有任何想法吗?泰

4

1 回答 1

0

withTransaction在一个块中进行循环应该会有所帮助

这是几年前的一篇博客文章,展示了这个想法

于 2012-06-01T10:56:27.217 回答