Использование дизъюнкции в QBE

Можно ли использовать дизъюнкт по критериям Пример?

Я пытался использовать Пример для фильтрации некоторых данных.

    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" находились между условием или.

Но Пример всегда ставит их в условие И.

Как я могу поставить два примера на дизъюнкт?


person gravatasufoca    schedule 16.10.2015    source источник


Ответы (1)


критерии.добавить(Ограничения.или(критерий1, критерий2))

где критерий1= Ограничения.eq(memorando.campanha, "campanha2");

person Payal Bansal    schedule 16.10.2015
comment
Но это не критерий примера. Я хочу сделать это с помощью QBE. - person gravatasufoca; 17.10.2015