/** * Guarda/actualiza las asociaciones de un jugador con una lista de familiares * * @param familiaresJugadores lista de familiares * @param jugador jugador */ public void guardar(List<FamiliarJugador> familiaresJugadores, Jugador jugador) { Session sesion = getSession(); Transaction tx = sesion.beginTransaction(); int p = 0; List<FamiliarJugador> datos = new ArrayList<FamiliarJugador>(); datos.addAll(familiaresJugadores); Criteria c = sesion .createCriteria(FamiliarJugador.class) .createCriteria("jugador") .add(Restrictions.eq("cedulaRif", jugador.getCedulaRif())); List<FamiliarJugador> datosAlmacenados = (List<FamiliarJugador>) c.list(); for (FamiliarJugador datoAlmacenado : datosAlmacenados) { p = buscarDatoPorCodigo(datos, datoAlmacenado); if (p == -1) { datoAlmacenado.setEstatus('E'); datoAlmacenado.setRepresentanteActual(false); } else { datoAlmacenado.setDatoBasico(datos.get(p).getDatoBasico()); datoAlmacenado.setRepresentanteActual(datos.get(p).isRepresentanteActual()); if (datoAlmacenado.getEstatus() == 'E') { datoAlmacenado.setEstatus('A'); } datos.remove(p); } sesion.update(datoAlmacenado); } /* * Procesamos los valores que hayan quedado en la lista , estos * restantes representan los nuevos datos que ha agregado el usuario */ for (FamiliarJugador datoNuevo : datos) { datoNuevo.setFechaIngreso(new Date()); datoNuevo.setEstatus('A'); sesion.save(datoNuevo); } tx.commit(); }
public void actualizarRepresentante(Familiar familiar, String cedulaJugador, boolean sw) { Session sesion = getSession(); Transaction tx = sesion.beginTransaction(); Criteria c1 = sesion .createCriteria(FamiliarJugador.class) .add(Restrictions.eq("familiar", familiar)) .add(Restrictions.eq("jugador.cedulaRif", cedulaJugador)); FamiliarJugador familiarJugador = (FamiliarJugador) c1.uniqueResult(); familiarJugador.setRepresentanteActual(sw); sesion.update(familiarJugador); tx.commit(); }