grails - executeUpdate后刷新很多数据

标签 grails load

我使用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/

    相关文章:

    grails - 检查属性是否按属性名称存在

    java - 使用 grails 几个月后的问题

    ruby - 保留从 Ruby 中的文件加载 YAML 的键顺序

    android - 一次加载 10 个项目 ListView Android

    performance - 三个js的表现

    grails - 如何在Grails中建立“ friend -友谊”关系模型

    grails - 如何获取运行 Grails 3.1.9 集成测试的 Url?

    grails - Grails Controller 脚手架默认 View 未在 Controller 中显示数据

    jQuery 根据其类为 "active"加载某些内容

    c# - 加载外部字体并在 C# 中使用它