我试图让我的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
变得懒惰的最佳方法是什么?
答案 0 :(得分:0)
我相信你可以通过在域类中声明一个名为fetchMode的属性来实现这一点,该属性包含property / fetch类型的映射
class MyClass {
static fetchMode = [clobCol: 'lazy']
...
}