Queria que me exclarecessem uma coisa.
Tenho um relacionamento de localização com lote, onde 1 lote tem N localizações e 1 localização pertence a um lote. Porém esse relacionamento pode ser null, ou seja, a localização não precisamente precisa de um lote.
Com isso eu tenho uns criterios de busca, onde eu vou trago todas as coleções que tem 1 lote, porém quando esse lote é nulo não está trazendo nada.
Tentei fazer dessa forma
Criteria select = sessao.createCriteria(Localizacao.class)
.createAlias("lote","lote")
.add(Restrictions.eq( "lote.codigo" , localizacao.getLote().getCodigo() )
.list();
Criteria select = sessao.createCriteria(Localizacao.class)
.add(example)
.list();
onde no example eu passava um objeto Localizacao que tinha o lote com o codigo setado e defini .excludeZeroes() no example.
terminei que só conseguir da seguinte forma:
Criteria select = sessao.createCriteria(Localizacao.class)
.createAlias("lote","lote");
if(localizacao.getLote().getCodigo() != null){
criteria.add(Restrictions.eq( "lote.codigo" , localizacao.getLote().getCodigo() );
}
List list = criteria.list();
Não sei se essa é a melhor forma de fazer, está parecendo armengue. Teria outra forma?