Grails 在执行更新后刷新大量数据
我使用Grails2.2.3,但我的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
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)
}
这是我所有麻烦的原因