【问题标题】:A join in HQL, how to with Criteria?在 HQL 中加入,如何使用 Criteria?
【发布时间】:2014-10-31 08:37:50
【问题描述】:

我有一个 Address 类类型和一个 Employee 类类型。 Address 包含 Employee 的集合。

我在 HQL,

Query query=session.createQuery("from Address a left join  a.employees  where a.zipcode like '%Work'" );
List<Address>addresses=query.list();

有 5 个 Address 实例,每个实例的集合中有 5 个 Eemployee 实例。所以我们得到 25 个对条目。

我们看到了,

addresses       ArrayList<E>  (id=42)
        elementData     Object[25]  (id=59)
                [0]     Object[2]  (id=61)
                        [0]     Address  (id=66)
                        [1]     Employee  (id=67)
...

我只打印了第一个条目。

您如何使用 Criteria 获得此结果?

【问题讨论】:

    标签: hibernate


    【解决方案1】:

    你可以试试这样的

    Criteria crit = session.createCriteria(Address.class);
    crit.setFetchMode("employees", FetchMode.JOIN);
    crit.add(Restrictions.like("zipcode", "Work", MatchMode.END));
    List<Address>addresses = crit.list();
    

    【讨论】:

    • 然后我得到一个地址列表(每个都有一个初始化的集合),但不是一个 Object[2] 的列表。
    • @PredragMaric 你可以看看这个问题stackoverflow.com/questions/27602318/…请吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-10-18
    • 2012-03-24
    • 2020-08-15
    • 2012-08-20
    • 2015-04-01
    • 2016-03-28
    • 1970-01-01
    相关资源
    最近更新 更多