我使用grails 2.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.myPropName的简单更新在生产中确实很慢。
在调试中我看到在我的block.executeUpdate(“myPropName的更新”)框架之后:
选择所有Block更新 和一个LkrRuleCrit的选择,其中RULEID是块的on,在这种情况下不是必需的和可能的(我有一个特定用途的链接)
我怎么能禁用所有链接对象的刷新?
我玩过哪个:
mapping {
cache true
}
而懒惰没有任何影响...
谢谢!
JF
答案 0 :(得分:0)
我回答自己。
永远不要使用org.apache.commons.lang3.builder.ToStringBuilder来生成Domain类的toString方法,如:
public String toString() {
return ToStringBuilder.reflectionToString(this)
}
这是我所有麻烦的原因。