如何使用Restrictions.and连接表?

时间:2015-12-24 14:58:11

标签: sql hibernate join hql hibernate-criteria

我希望用标签标记所有问题"一个"和"两个"使用Criteria API:

enter image description here

    Criteria criteria = sessionFactory.getCurrentSession().createCriteria(Question.class);
    if (tags != null && tags.length > 0) {
        criteria.createAlias("tags", "t", JoinType.INNER_JOIN);
        Criterion[] criterions = new Criterion[tags.length];
        for (int i = 0; i < tags.length; i++) {
            criterions[i] = Restrictions.eq("t.name", tags[i]);
        }
        criteria.add(Restrictions.and(criterions));
    }
    return criteria.list();

当tags = [&#34; one&#34;,&#34; two&#34;]时,没有返回任何内容,因为据我所知,hibernate首先为每个(问题,标记)对生成每一行,然后过滤它,然后才按问题分组。

我该如何解决这个问题?

tags = [&#34; one&#34;]或tags = [&#34; two&#34;]工作正常。

0 个答案:

没有答案