Hago una busqueda de aplicaciones
Código Java:
Ver original
public Predicate toPredicate(Root<Aplicacion> aplicacion, CriteriaQuery<?> query, CriteriaBuilder cb) { ....
Quiero cargar dos listados de aplicaciones pero filtrados,
1-que en uno salga todos las aplicaciones menos las del grupo que le envío,
2- y en el otro al revés.
Código Java:
Ver original
if (grupoAplicacion != null && !grupoAplicacion.isNewObject()) { Root<GrupoAplicacion> grupoAplicacion = query.from(GrupoAplicacion.class); Join<GrupoAplicacion, Aplicacion> aplicacionesJoin = grupoAplicacion.join(GrupoAplicacion_.aplicaciones); if (asociadas) { // boolean restrictionsList.add(cb.and(cb.in(aplicacion).value(aplicacionesJoin))); // carga las del join } else { restrictionsList.add(cb.not(cb.in(aplicacion).value(aplicacionesJoin))); // carga todas menos la del join } }
El primer caso no me sale bien, ya que salen las aplicaciones repetidas.
No se si la sintaxis esta bien, necesito que en "aplicacionJoin" me cargue la aplicaciones del grupo en cuestión.
Para que si le paso asociadas = true me carge todas menos las del grupo.
y si le paso asociadas = false, me carge las del propio grupo.