Daniel.F 13 de out. de 2010
Tenta assim:
DetachedCriteria mainCriteria = DetachedCriteria . forClass ( Pedido . class );
mainCriteria . createAlias ( "this.exame.referencia" , "referencia" );
mainCriteria . add ( Restrictions . eq ( "referencia.entityId" , atributo . getExameId ()));
Só mais uma coisa; Exame também está Embedded dentro de exame?
rodpuc 13 de out. de 2010
Não funcionou.
Mas eu tb passei o código da criteria ligeiramente errado. Na verdade o que eu tenho são exames e não exame:
DetachedCriteria mainCriteria = DetachedCriteria.forClass(Pedido.class);
mainCriteria.createAlias("exames", "exames");
mainCriteria.createAlias("exames.referencia", "referencia");
mainCriteria.add(Restrictions.eq("referencia.entityId", atributo.getExameId()));
Não sei se isso pode estar influenciando
Daniel.F 13 de out. de 2010
Exames é um set ou um atributo??
rodpuc 13 de out. de 2010
Exames é um atributo com setter e getter. É uma List.
Daniel.F 13 de out. de 2010
Desculpa não usei a palavra atributo muito bem.
Mas no caso a restrição seria para o atributos dentro do list, não é?
Se for sua consulta ficaria assim:
DetachedCriteria mainCriteria = DetachedCriteria . forClass ( Pedido . class );
mainCriteria . createCriteria ( "exames" , "exam" );
mainCriteria . add ( Restrictions . eq ( "exam.referencia.entityId" , atributo . getExameId ()));