Hibernate Grails/GORM延迟加载CLOB字段

Hibernate Grails/GORM延迟加载CLOB字段,hibernate,grails,gorm,lazy-loading,clob,Hibernate,Grails,Gorm,Lazy Loading,Clob,我试图使Grails域类的一个字段延迟加载。事实上,这是DB中的CLOB列,但它映射到Grails域类中的字符串字段。 因此,我为此类创建了以下hibernate映射: <hibernate-mapping> <class name="MyClass" table="my_table"> <id name="id" column="id"> <generator class="native"/> </id&g

我试图使Grails域类的一个字段延迟加载。事实上,这是DB中的CLOB列,但它映射到Grails域类中的字符串字段。 因此,我为此类创建了以下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>
我希望当我使用DetachedCriteria查询DB时,
clobCol
应该是惰性的。但事实上,它正被热切地载入。
有没有可能用这种方式使字段变懒?如果是,那么我做错了什么?如果没有,那么在没有大量重构类和现有查询的情况下,让
clobCol
变得懒惰的最佳方法是什么?

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

class MyClass {

    static fetchMode = [clobCol: 'lazy']

    ...
}

正如我在GORM中所理解的,这只适用于关联,而不适用于字段。这就是为什么我试图在hibernate映射文件中配置这样的行为,hibernate应该有这个功能。@its.ok009我明白了。你检查过这个问题和答案中的链接了吗?可能会有帮助。是的,谢谢你,迈克。我已经检查了这些关于它在Java/Hibernate中如何工作的注释。不幸的是,如果可能的话,我没有找到任何关于如何在Grails中启用这种“字节码插装”的信息
class MyClass {

    static fetchMode = [clobCol: 'lazy']

    ...
}