【问题标题】:Hibernate Criteria API休眠标准 API
【发布时间】:2011-10-09 00:12:31
【问题描述】:

我需要进行搜索,其中涉及向下导航到子元素,然后返回到根/父元素。我如何使用 Criteria API 做这样的事情?

举个例子:

Criteria crit = getSessionFactory().getCurrentSession()
    .createCriteria(TherapistImpl.class);

现在我需要去 User 类获取与用户关联的地址(一组地址):

crit.createCriteria("user")
    .createCriteria("addresses")
    .add(Restrictions.eq("postcode", postCode));

但是现在我已经这样做了,我需要返回以从父类 TherapyImpl 获取其他一对多关联,例如

crit.createCriteria("therapyProvisions")
    .add(Restrictions.eq("type", searchByValueSelected));

但 hibernate 认为这是指我们之前链接和创建的用户条件。

那么我要创建多个条件吗?有没有办法导航回树等?

感谢您的 cmets 保罗

【问题讨论】:

    标签: hibernate api search criteria


    【解决方案1】:

    与其为user 关联创建子Criteria,不如为其创建别名:

    crit.createAlias("user", "userAlias");
    crit.add(Restrictions.eq("userAlias.addresses.postcode", postCode);
    

    (您可能需要为addresses 创建一个子别名。)

    然后,对therapyProvisions 执行相同操作:

    crit.createAlias("therapyProvisions", "therapyProvisionsAlias");
    crit.add(Restrictions.eq("therapyProvisionsAlias.type", searchByValueSelected);
    

    现在您将拥有内部连接。

    【讨论】:

      猜你喜欢
      • 2012-12-24
      • 2011-01-29
      • 2021-10-19
      • 2011-08-13
      • 2011-04-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多