这是一个非常棘手的问题。我正在使用hibernate 3.6.8并使用hbm xml映射。 我有一个一对多关系的情况,最终在一个具有空值的数组中。 我阅读有关索引等文档的文档,但当我查看数据库中导致这个的对象时,一切看起来都很好。我的hbm映射看起来像这样。
<array name="child"
element-class="childClass"
table="childTable" fetch="join">
<key>
<column name="parentColumnId" />
</key>
<list-index column="idx" />
<one-to-many class="childClass" />
</array>
我得到一个包含4个空值的数组,在数据库中我找到6条记录(对于这个父级),所有这些记录都带有顺序idx值(0,1,2,3,4,5)
我在这里有点失落。有什么帮助吗?(更多信息)
业务对象模型非常庞大,我将这个问题置于业务对象模型树中间的关系中。它是这样的:
...
public class Parent {
private Child[] allChild;
}
...
我正在使用分离标准从数据库中获取对象。标准针对BOM表树中的其他对象而不是导致问题的对象。我也使用CriteriaSpecification.DISTINCT_ROOT_ENTITY来获取不同的对象。
另一个有趣的事实是,每次都不会发生这种情况。有时它返回完全填充的数组,没有空值。仍然没有弄清楚有什么不同。由于这开始在自动化测试中发生,因此执行总是相同的。