这是一个非常棘手的问题。我正在使用休眠 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 来获取不同的对象。
另一个有趣的事实是,它不会每次都发生。有时它返回完全填充的数组,没有空值。还是没弄清楚有什么不同。由于这开始在自动化测试中发生,因此执行总是相同的..