0

是否可以在标准示例上使用析取?

我尝试使用示例来过滤一些数据。

    Criteria critFatura = ((Session)em.getDelegate()).createCriteria(Fatura.class);
    critFatura.add(Example.create(fatura).enableLike(MatchMode.ANYWHERE));

    critFatura.setFetchMode("tipoPublicidade", FetchMode.JOIN);
    critFatura.createCriteria("situacao")
            .add(Example.create(fatura.getSituacao()));

    critFatura.createCriteria("aprovacaoProducao", "aprovacaoProducao", JoinType.LEFT_OUTER_JOIN)
            .createCriteria("aprovacaoProducao.agencia", "agencia", JoinType.LEFT_OUTER_JOIN)
            .add(Example.create(agencia));

    critFatura.createCriteria("pedidoInsercao", "pedidoInsercao", JoinType.LEFT_OUTER_JOIN)
            .createAlias("pedidoInsercao.planoMidia", "planoMidia", JoinType.LEFT_OUTER_JOIN)
            .createAlias("planoMidia.doac", "doac", JoinType.LEFT_OUTER_JOIN);

    critFatura.createCriteria("memorando", "memorando", JoinType.LEFT_OUTER_JOIN);

    Criteria mCampanha=critFatura.createCriteria("memorando.campanha", "campanha2", JoinType.LEFT_OUTER_JOIN)
            .add(Example.create(campanha));
    Criteria dCampanha= critFatura.createCriteria("doac.campanha", "campanha", JoinType.LEFT_OUTER_JOIN)
            .add(Example.create(campanha));

我希望属性“memorando.campanha”和“doac.campanha”介于或条件之间。

但是示例总是将它们置于 And 条件下。

我怎样才能把这两个例子放在一个析取词上?

4

1 回答 1

0

criteria.add(Restrictions.or(criterion1,criterion2))

其中criteria1= Restrictions.eq(memorando.campanha, "campanha2");

于 2015-10-16T22:02:23.953 回答