List of usage examples for org.hibernate Session merge
Object merge(Object object);
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); } }