Java - Ayuda con metodo de java

 
Vista:
sin imagen de perfil

Ayuda con metodo de java

Publicado por alexander (3 intervenciones) el 10/05/2016 15:05:13
Buenas amigos tengo un problema con metodo que realize en java el proceso funciona bien pero el detalle esta que cuando realizo un update en las horastotales se me alteran todas las horas trabajadas ya que actualmente la formula que uso es horastrabajadas = horasIngresadas - horastotales luego que tome este dato proceso a setiar el nuevo horas totales que vendria siendo horastotales = horastotales + horasTrabajadas en esta funcion cuando se añade el primer registro funciona de maravilla pero cuando se inserta el 2 es que empieza a fallar este es mi codigo a ver si me pueden guiar en algo
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
public void crearHistorial(Equipo equipo) {
        historialDao.crearHistorial(equipo, login.getUsuario(), historial.getHorastd(), historial.getUbicacion());
        EntityManagerFactory emf = Persistence.createEntityManagerFactory("inventarioPU");
        EntityManager em = emf.createEntityManager();
        equipo.setNumeroControl(historial.getUbicacion());
        equipoDAO.actualizarEquipoe(equipo, login.getUsuario());
        abrirEquipo(equipoID);
        Equipo c = em.find(Equipo.class, equipo.getId());
        System.out.println(c.getId());
        Query query2 = em.createQuery("UPDATE Historial c SET c.horasTrabajadas= c.horastd -" + expediente.getHorastotales() + " WHERE c.equipo.id=" + eequipo.getId());
        em.getTransaction().begin();
        query2.executeUpdate();
        em.getTransaction().commit();
        listahist = bm.buscarHistorial(eequipoID);
        for (Historial hist : listahist) {
            c.setHorastotales(c.getHorastotales() + hist.getHorasTrabajadas());
            c.setHorasmotor(c.getHorasmotor() - hist.getHorasTrabajadas());
            c.setHorashrida(c.getHorashrida() - hist.getHorasTrabajadas());
 
        }
        em.getTransaction().begin();
        em.merge(c);
        em.getTransaction().commit();
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder