使用最新的休眠3 ...休眠禁用集合提取
有一个模型,其中Element类有一个关系类的2个列表集合。 Element是拥有(来源)Relation的地方,另一个是目的地。
<class name="Element"....>
....
<list name="sourceRelations" ....>
...
<one-to-many class="...Relation" />
</list>
<list name="destinationRelations" ....>
...
<one-to-many class="...Relation" />
</list>
</class>
<class name="Relation"....>
....
<many-to-one name="source" class="...Element" ...
<column name="SOURCEID" sql-type="INTEGER" not-null="true" />
</many-to-one>
<many-to-one name="destination" class="...Element" ...
<column name="DESTINATIONID" sql-type="INTEGER" not-null="true" />
</many-to-one>
</class>
映射基本上只在生成条件查询时有用。否则,当获取一个元素(只通过一个标准,从来没有通过获取/加载),我从来不希望Hibernate实际获取关系集合。决不。现在在我的代码中,我清理Element对象,然后通过创建一个新元素并转移要传播的属性(即sourceRelation/destinationRelation永远不会传输)来返回它们。针对Relation对象的条件查询也是如此。源/目的地属性(即元素)被清除。
有没有办法通过Hibernate拦截器代理Element实体或使用Tuplizers来基本强制所有Element实体将sourceRelation/destinationRelation属性清空?
整个想法不必子。元素/关系类应该是通用的。 – 2011-05-30 08:46:53
为什么懒惰=“真”不够? – 2011-06-01 15:55:14