Example usage for org.hibernate Session merge

List of usage examples for org.hibernate Session merge

Introduction

In this page you can find the example usage for org.hibernate Session merge.

Prototype

Object merge(Object object);

Source Link

Document

Copy the state of the given object onto the persistent object with the same identifier.

Usage

From source file:org.iti.agrimarket.model.dao.UserOfferProductFixedDAO.java

@Override
public void edit(UserOfferProductFixed userOfferProductFixed) {
    transactionTemplate.execute((TransactionStatus ts) -> {
        Session session = hibernateTemplate.getSessionFactory().getCurrentSession();

        if (userOfferProductFixed != null) {
            session.merge(userOfferProductFixed);
            return true;
        } else {//from  w  w  w .  j a  va  2 s.c om
            ts.setRollbackOnly();
            return false;
        }
    });
}

From source file:org.jasig.ssp.dao.AbstractAuditableCrudDao.java

License:Apache License

@SuppressWarnings(UNCHECKED)
@Override//ww w .  j  ava  2s.c o m
public T save(final T obj) {
    final Session session = sessionFactory.getCurrentSession();
    if (obj.getId() == null) {
        session.saveOrUpdate(obj);
        session.flush(); // make sure constraint violations are checked now
        return obj;
    }

    return (T) session.merge(obj);
}

From source file:org.javamexico.dao.hib3.ForumDAO.java

License:Open Source License

public VotoForo vota(Usuario user, Foro foro, boolean up) throws PrivilegioInsuficienteException {
    if ((up && user.getReputacion() < minRepVotaFu) || (!up && user.getReputacion() < minRepVotaFd)) {
        throw new PrivilegioInsuficienteException(
                "El usuario no tiene privilegio suficiente para votar por un foro");
    }/*from  w ww .  ja  va2s .c  o  m*/
    Session sess = sfact.getCurrentSession();
    //Buscamos el voto a ver si ya se hizo
    VotoForo voto = findVoto(user, foro);
    int uprep = 0;
    if (voto == null) {
        //Si no existe lo creamos
        voto = new VotoForo();
        voto.setFecha(new Date());
        voto.setForo(foro);
        voto.setUp(up);
        voto.setUser(user);
        sess.save(voto);
        uprep = up ? 1 : -1;
    } else if (voto.isUp() != up) {
        //Si ya existe pero quieren cambio, se actualiza
        voto.setFecha(new Date());
        voto.setUp(up);
        sess.update(voto);
        uprep = up ? 2 : -2;
    }
    if (uprep != 0) {
        sess.refresh(foro);
        //Esto no es nada intuitivo pero si no lo hago asi, se arroja una excepcion marciana de Hib
        user = (Usuario) sess.merge(foro.getAutor());
        sess.lock(user, LockMode.UPGRADE);
        sess.refresh(user);
        user.setReputacion(user.getReputacion() + uprep);
        sess.update(user);
        sess.flush();
    }
    return voto;
}

From source file:org.javamexico.dao.hib3.ForumDAO.java

License:Open Source License

public VotoComentForo vota(Usuario user, ComentForo coment, boolean up) throws PrivilegioInsuficienteException {
    if ((up && user.getReputacion() < minRepVotaCu) || (!up && user.getReputacion() < minRepVotaCd)) {
        throw new PrivilegioInsuficienteException(
                "El usuario no tiene privilegio suficiente para votar por un comentario");
    }/*from w  ww .  j  ava2s.  c  o  m*/
    Session sess = sfact.getCurrentSession();
    VotoComentForo voto = findVoto(user, coment);
    int uprep = 0;
    if (voto == null) {
        voto = new VotoComentForo();
        voto.setFecha(new Date());
        voto.setComentario(coment);
        voto.setUp(up);
        voto.setUser(user);
        sess.save(voto);
        uprep = up ? 1 : -1;
    } else if (voto.isUp() != up) {
        voto.setUp(up);
        voto.setFecha(new Date());
        sess.update(voto);
        uprep = up ? 2 : -2;
    }
    if (uprep != 0) {
        sess.refresh(coment);
        user = (Usuario) sess.merge(coment.getAutor());
        sess.lock(user, LockMode.UPGRADE);
        sess.refresh(user);
        user.setReputacion(user.getReputacion() + uprep);
        sess.update(user);
        sess.flush();
    }
    return voto;
}

From source file:org.javamexico.dao.hib3.QuestionDAO.java

License:Open Source License

public VotoPregunta vota(Usuario user, Pregunta pregunta, boolean up) throws PrivilegioInsuficienteException {
    if ((up && user.getReputacion() < minRepVotaPu) || (!up && user.getReputacion() < minRepVotaPd)) {
        throw new PrivilegioInsuficienteException(
                "El usuario no tiene privilegio suficiente para votar por una pregunta");
    }//  w  ww .j a v a  2  s. c o m
    Session sess = sfact.getCurrentSession();
    VotoPregunta v = findVoto(user, pregunta);
    int updateRep = 0;
    if (v == null) {
        //Insertamos un nuevo voto
        v = new VotoPregunta();
        v.setFecha(new Date());
        v.setPregunta(pregunta);
        v.setUp(up);
        v.setUser(user);
        sess.save(v);
        updateRep = up ? 1 : -1;
    } else if (v.isUp() != up) {
        //Modificamos el voto existente
        v.setUp(up);
        v.setFecha(new Date());
        sess.update(v);
        //Al cambiar voto, debe afectarse por 2
        updateRep = up ? 2 : -2;
    }
    if (updateRep != 0) {
        //Actualizamos la reputacion del autor de la pregunta
        sess.refresh(pregunta);
        //Esto no es intuitivo pero si no lo hago asi, hib3 arroja excepcion marciana.
        user = (Usuario) sess.merge(pregunta.getAutor());
        sess.lock(user, LockMode.UPGRADE);
        sess.refresh(user);
        user.setReputacion(user.getReputacion() + updateRep);
        sess.update(user);
        sess.flush();
    }
    return v;
}

From source file:org.javamexico.dao.hib3.QuestionDAO.java

License:Open Source License

public VotoRespuesta vota(Usuario user, Respuesta resp, boolean up) throws PrivilegioInsuficienteException {
    if ((up && user.getReputacion() < minRepVotaRu) || (!up && user.getReputacion() < minRepVotaRd)) {
        throw new PrivilegioInsuficienteException(
                "El usuario no tiene privilegio suficiente para votar por una respuesta");
    }//from   ww  w .  ja v  a2s .c  o  m
    Session sess = sfact.getCurrentSession();
    VotoRespuesta v = findVoto(user, resp);
    int updateRep = 0;
    if (v == null) {
        v = new VotoRespuesta();
        v.setFecha(new Date());
        v.setRespuesta(resp);
        v.setUp(up);
        v.setUser(user);
        sess.save(v);
        updateRep = up ? 1 : -1;
    } else if (v.isUp() != up) {
        v.setUp(up);
        v.setFecha(new Date());
        sess.update(v);
        updateRep = up ? 2 : -2;
    }
    if (updateRep != 0) {
        sess.refresh(resp);
        user = (Usuario) sess.merge(resp.getAutor());
        sess.lock(user, LockMode.UPGRADE);
        sess.refresh(user);
        user.setReputacion(user.getReputacion() + updateRep);
        sess.update(user);
        sess.flush();
    }
    return v;
}

From source file:org.jboss.as.quickstart.hibernate4.repository.MemberRepository.java

License:Apache License

public void save(Member member) {

    Session session = (Session) em.getDelegate();
    session.merge(member);
    memberEventSrc.fire(member);

}

From source file:org.jboss.as.test.compat.jpa.hibernate.transformer.SFSBHibernateSessionFactory.java

License:Open Source License

public Product createAndMergeProduct(int id, BitSet bitset) {
    final Product product = new Product();
    product.setId(id);/*  ww w.  j a  v  a 2s  .  c  o  m*/
    product.setBitSet(bitset);
    try {
        Session session = sessionFactory.openSession();
        Transaction tx = session.beginTransaction();
        session.merge(product);
        session.flush();
        tx.commit();
        session.close();
    } catch (Exception e) {
        throw new RuntimeException("transactional failure while merging Product entity", e);
    }

    return product;
}

From source file:org.jcvi.ometa.hibernate.dao.ActorDAO.java

License:Open Source License

public void deleteActorGroup(ActorGroup ag, Session session) throws DAOException {
    try {/*  www  . j a  v a  2 s.c om*/
        session.delete(session.contains(ag) ? ag : session.merge(ag));
    } catch (Exception ex) {
        throw new DAOException(ex);
    }
}

From source file:org.jcvi.ometa.hibernate.dao.EventDAO.java

License:Open Source License

public void updateEventStatus(Event event, Date transactionDate, Session session) throws Exception {
    try {/*from  ww w. ja  va2 s  . c o  m*/
        LookupValueDAO lvDAO = new LookupValueDAO();
        LookupValue lv = lvDAO.getEventStatusLookupValue(true, session);

        if (event.getEventStatus().compareTo(lv.getLookupValueId()) == 0)
            event.setEventStatus(lvDAO.getEventStatusLookupValue(false, session).getLookupValueId());
        else
            event.setEventStatus(lv.getLookupValueId());

        if (event.getModifiedDate() == null) {
            event.setModifiedDate(transactionDate);
        }

        session.merge(event);
    } catch (Exception ex) {
        throw new DAOException(ex);
    }
}