Grails / GORM延迟加载CLOB字段

时间:2014-11-10 17:22:17

标签: hibernate grails gorm lazy-loading clob

我试图让我的Grails域类的一个字段被延迟加载。实际上,这是DB中的CLOB列,但它映射到Grails域类中的String字段。 所以我为这个类创建了以下hibernate映射:

<hibernate-mapping>
<class name="MyClass" table="my_table">
    <id name="id" column="id">
        <generator  class="native"/>
    </id>       
    <property name="clobCol" type="materialized_clob" lazy="true"/>
    <property name="someOtherField" type="string"/>
</class>
</hibernate-mapping>

我的域类如下:

class MyClass {

    String someOtherField

    String clobCol

    static constraints = {
        clobCol(nullable: true)
    }
}

当我使用DetachedCriteria查询数据库时,我期待clobCol应该是懒惰的。但事实上,它正在急切地加载。 是否有可能以这种方式使场懒惰?如果是的话那么我做错了什么?如果不是,那么在没有大量重构类和现有查询的情况下,使clobCol变得懒惰的最佳方法是什么?

1 个答案:

答案 0 :(得分:0)

我相信你可以通过在域类中声明一个名为fetchMode的属性来实现这一点,该属性包含property / fetch类型的映射

class MyClass {

    static fetchMode = [clobCol: 'lazy']

    ...
}
相关问题