0

我在处理 Hibernate 标准和集合时遇到了困难。

我有以下关系:

  • A有很多B的元素
  • A 具有 C 的一个元素
  • C有很多D的元素
  • D 具有 E 的一个元素

所以基本上

E <----1---- D <---- ---- C <----1---- A ----- ----> B

我正在尝试获取 A 的所有元素,其 C 元素验证 C 属性的某些条件,并且至少有一个与特定 E 相关的元素 D。

所以这是我到目前为止的标准:

session.createCriteria(A.class)
                .createCriteria("Cs")
                .add(Restrictions.or(Restrictions.eq("attributeA", 1), Restrictions.eq("attributeB", 2)))
                .createCriteria("Ds")
                .createCriteria("E")
                .add(Restrictions.eq("id", 123);

这可以正常工作,但是我从 Hibernate 获得的 sql 结果对我不需要的 C、D 和 E 的所有属性进行了选择(只需要按它们过滤)。如何限制这些并仅使用这些关系进行过滤?

另外,我确实希望获取元素 B,否则我会得到一个必须单独初始化的集合,这会导致更多查询。我怎样才能建立一个包含这些的标准?

4

0 回答 0