Grails 在执行更新后刷新大量数据

Grails 在执行更新后刷新大量数据,grails,load,Grails,Load,我使用Grails2.2.3,但我的grails应用程序有问题 我有几门课: class Block { [...] String myPropName Rule rule [...] static mapping = { [...] rulecolumn: 'RULEID' [...] } class Rule { [...] static hasMany = [lkrRuleCrit: LkrRuleCrit] [...] static ma

我使用Grails2.2.3,但我的grails应用程序有问题

我有几门课:

class Block {
[...]
    String myPropName 
    Rule rule
[...]
    static mapping = {
[...]
    rulecolumn: 'RULEID'
[...]
}
class Rule {
[...]
    static hasMany = [lkrRuleCrit: LkrRuleCrit]
[...]
    static mapping = {
[...]
        lkrRuleCrit joinTable: [name: 'LK_RULE_CRIT', key: 'RULEID' ]
[...]
}
class LkrRuleCrit implements Serializable{
    Rule rule   
    String  CriteriaValue   
    static mapping = {          
        id composite: ['RuleID', 'CriteriaType']        
        table 'LkrRuleCrit_T'       
        Rule column: 'RULEID' ,lazy: true
        CriteriaType column: 'CRITERIA_TYPE_ID'  ,lazy: true
    }
}
Block=>N行 规则=>100000行 LkrRuleCrit=>规则x 100行 由于数据量大,对Block.myPropName的简单更新在生产中的速度非常慢

在调试中,我看到在myPropName的block.executeUpdateupdate之后,框架执行以下操作:

选择所有更新的块 和一个LkrRuleCrit的选择,其中RULEID是块的on,这是不需要的,在这种情况下,我有一个链接用于特定用途

如何禁用所有链接对象的刷新

我玩过以下游戏:

映射{ 缓存为真 } 和懒惰没有任何影响

谢谢

我对自己回答

永远不要使用org.apache.commons.lang3.builder.toString builder生成域类的toString方法,如:

public String toString() {
    return ToStringBuilder.reflectionToString(this)
}
这是我所有麻烦的原因