Advertisement
Guest User

Join Hibernate Criteria

a guest
Nov 24th, 2014
149
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.76 KB | None | 0 0
  1.     /**
  2.      * Obtiene una lista de los cargos ocupados por el MSPE
  3.      * @param idFuncionario - ide del funcionario del que se obtendran los datos
  4.      * @param puesto - indica si incluir la informacion del puesto
  5.      * @param puesto_cargo - indica si incluir la informacion del cargo
  6.      * @param puesto_cargo_cuerpo - indica si incluir la informacion del cuerpo
  7.      * @param funcionario - indica si incluir la informacion de funcionario
  8.      * @param funcionario_tratamiento - indica si incluir la informacion de tratamiento
  9.      * @return
  10.      * @throws Exception
  11.      */
  12.     @Override
  13.     public List<DTOCargoFuncionario> getCargosFuncionario(Integer idFuncionario,boolean puesto,boolean puesto_cargo,boolean puesto_cargo_cuerpo,boolean funcionario,boolean funcionario_tratamiento,boolean documentoAlta)throws Exception
  14.     {
  15.         logger.info("getCargosFuncionario:"+idFuncionario);
  16.         Criteria criteria = getSession().createCriteria(DTOCargoFuncionario.class,"cf");
  17.         criteria.add(Restrictions.eq("cf.idFuncionario",idFuncionario));
  18.         criteria.createAlias("cf.dtoMotivoIngreso","cf_motivoIngreso",JoinType.LEFT_OUTER_JOIN);
  19.         criteria.createAlias("cf.documentoAlta","cf_documentoAlta",JoinType.LEFT_OUTER_JOIN);
  20.         criteria.createAlias("cf.puesto", "cf_puesto",JoinType.LEFT_OUTER_JOIN);
  21.         criteria.createAlias("cf_puesto.areaAdscripcion", "cf_puesto_areaAdscripcion",JoinType.LEFT_OUTER_JOIN);
  22.         criteria.createAlias("cf.funcionario","cf_funcionario",JoinType.LEFT_OUTER_JOIN);
  23.         criteria.createAlias("cf_funcionario.tratamiento","cf_funcionario_tratamiento",JoinType.LEFT_OUTER_JOIN);      
  24.         criteria.setFetchMode("cf_puesto_areaAdscripcion", FetchMode.JOIN);    
  25.         if(puesto)
  26.         {
  27.             criteria.setFetchMode("puesto", FetchMode.JOIN);
  28.         }
  29.         if(puesto_cargo)
  30.         {
  31.             criteria.setFetchMode("puesto.cargo", FetchMode.JOIN);
  32.         }
  33.         if(puesto_cargo_cuerpo)
  34.         {
  35.             criteria.setFetchMode("puesto.cargo.cuerpo", FetchMode.JOIN);
  36.         }
  37.         if(funcionario)
  38.         {
  39.             criteria.setFetchMode("cf_funcionario", FetchMode.JOIN);
  40.         }
  41.         if(funcionario_tratamiento)
  42.         {
  43.             criteria.setFetchMode("cf_funcionario_tratamiento", FetchMode.JOIN);
  44.         }
  45.         if(documentoAlta)
  46.         {
  47.             criteria.setFetchMode("cf_documentoAlta", FetchMode.JOIN);
  48.         }
  49.         Integer valores[]=new Integer[3];
  50.         valores[0]=INGRESO;
  51.         valores[1]=READSCRIPCION;
  52.         valores[2]=MOVIMIENTO_INTERNO;
  53.         criteria.add(Restrictions.in("cf_motivoIngreso.idTipoMovimiento",valores));
  54.         criteria.add(Restrictions.eq("cf_motivoIngreso.claseMovimiento",PERMANENTE));
  55.         criteria.add(Restrictions.isNotNull("cf.fechaBajaAsignacion"));
  56.         criteria.addOrder(Order.desc("cf.fechaAltaAsignacion"));
  57.        
  58.         @SuppressWarnings("unchecked")
  59.         List<DTOCargoFuncionario>listaTemp=(List<DTOCargoFuncionario>)criteria.list();     
  60.         logger.info("Numero de plazas: "+listaTemp.size());    
  61.         return listaTemp;
  62.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement