gpt4 book ai didi

grails - executeUpdate后刷新很多数据

转载 作者:行者123 更新时间:2023-12-02 14:52:04 24 4
gpt4 key购买 nike

我使用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
}
}
  • 块=> N行
  • 规则=> 1亿行
  • LkrRuleCrit =>规则x 100行

  • 由于数据量大,对Block.myPropName的简单更新实际上生产速度很慢。

    在调试中,我看到在我的block.executeUpdate(“myPropName的更新”)之后,框架执行了以下操作:

    选择所有已更新的块
    以及LkrRuleCrit的选择,其中RULEID是该块的开,这在这种情况下不是必需的,也是可能的(我有一个特定用途的链接)

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

    我玩过:

    mapping {
    cache true
    }
    而且懒惰没有任何作用...

    谢谢 !

    JF

    最佳答案

    我对自己回答。

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

    public String toString() {
    return ToStringBuilder.reflectionToString(this)
    }

    这是我所有麻烦的原因。

    关于grails - executeUpdate后刷新很多数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25012435/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com