我有一个映射文件,为某些相关实体设置lazy=false
。这对许多用例都有意义,但也有一些例外。问题是我不希望在查询时获取相关的关联以用于这些情况,这在时间上是非常昂贵的。
实体的映射示例。
<class name="Category" table="category">
<id name="id" type="string">
<column length="50" name="id"/>
<generator class="uuid"/>
</id>
<property name="name" type="string">
<column length="100" name="name" not-null="true"/>
</property>
<set inverse="true" lazy="false" name="categorySourcesList">
<key>
<column length="50" name="categoryid" not-null="true"/>
</key>
<one-to-many class="CategorySource"/>
</set>
</class>
我的问题是,有没有办法覆盖映射文件中设置的lazy
值,可以在sql-query
我自定义写入或启用延迟加载作为其中一个参数DAO?或通过一些注释?
答案 0 :(得分:2)
AFAIK你不能用LAZY覆盖EAGER加载,但只能反过来。
因此,您需要将关联定义为LAZY并使用连接覆盖查询中的关联。可能有其他方法可以做到这一点,但我担心这就是我现在所知道的。