Is it possible to use disjunction on criteria Example?
I've tried to use Example to filter some data.
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));
I wish that the properties "memorando.campanha" and "doac.campanha" are between an or condition.
But the Example always put them on an And condition.
How can I put the two Examples on a disjuntion?