List of usage examples for org.hibernate Session refresh
void refresh(Object object);
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 w w .jav a 2s.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.ForumDAO.java
License:Open Source License
public List<Foro> getForosConTag(TagForo tag) { Session sess = sfact.getCurrentSession(); sess.refresh(tag); return new ArrayList<Foro>(tag.getForos()); }
From source file:org.javamexico.dao.hib3.ForumDAO.java
License:Open Source License
@SuppressWarnings("unchecked") public List<Foro> getForosConTags(List<TagForo> tags) { Session sess = sfact.getCurrentSession(); Set<Integer> foros = new TreeSet<Integer>(); //Recorremos cada tag for (TagForo tag : tags) { sess.refresh(tag); //Obtenemos los foros del tag Set<Foro> sub = tag.getForos(); //Por alguna rarisima razon mas alla de mi comprension, //si agrego el foro directamente a la lista, en algun momento truena esto //con un ClassCastException que no me da stack trace. Algun pedo muy satanico. //Asi que agregamos la llave de cada foro y luego hacemos un query. //Ineficiente, pero al menos funciona. for (Foro f : sub) { foros.add(f.getFid());//from ww w . j ava 2 s . c o m } } return sess.createCriteria(Foro.class).add(Restrictions.in("fid", foros)).list(); }
From source file:org.javamexico.dao.hib3.QuestionDAO.java
License:Open Source License
public List<Pregunta> getPreguntasConTag(TagPregunta tag) { Session sess = sfact.getCurrentSession(); sess.refresh(tag); return new ArrayList<Pregunta>(tag.getPreguntas()); }
From source file:org.javamexico.dao.hib3.QuestionDAO.java
License:Open Source License
public List<Pregunta> getPreguntasConTags(Set<TagPregunta> tags) { Session sess = sfact.getCurrentSession(); Set<Pregunta> qus = new TreeSet<Pregunta>(); for (TagPregunta tag : tags) { sess.refresh(tag); qus.addAll(tag.getPreguntas());//from ww w . j a v a 2 s . co m } return new ArrayList<Pregunta>(qus); }
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"); }/*from w ww. j a va 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 . j av a 2 s . co 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.javamexico.dao.hib3.QuestionDAO.java
License:Open Source License
public Respuesta addRespuesta(String resp, Pregunta p, Usuario autor) { Session sess = sfact.getCurrentSession(); Respuesta r = new Respuesta(); r.setFecha(new Date()); r.setAutor(autor);/*from ww w . j av a2s .c om*/ r.setPregunta(p); r.setRespuesta(resp); sess.save(r); sess.flush(); sess.refresh(p); p.getRespuestas().size(); return r; }
From source file:org.javamexico.dao.hib3.QuestionDAO.java
License:Open Source License
public ComentPregunta addComentario(String c, Pregunta p, Usuario autor) { Session sess = sfact.getCurrentSession(); ComentPregunta cp = new ComentPregunta(); cp.setAutor(autor);//from w w w . j av a 2 s. c o m cp.setComentario(c); cp.setFecha(new Date()); cp.setPregunta(p); sess.save(cp); sess.flush(); sess.refresh(p); p.getComentarios().size(); return cp; }
From source file:org.javamexico.dao.hib3.QuestionDAO.java
License:Open Source License
public ComentRespuesta addComentario(String c, Respuesta r, Usuario autor) { Session sess = sfact.getCurrentSession(); ComentRespuesta cr = new ComentRespuesta(); cr.setRespuesta(r);// w ww . j av a2 s. c o m cr.setAutor(autor); cr.setComentario(c); cr.setFecha(new Date()); sess.save(cr); sess.flush(); sess.refresh(r); r.getComentarios().size(); return cr; }