List of usage examples for org.hibernate Session update
void update(Object object);
From source file:by.bsuir.akkerman.mobile.server.dao.DaoUniversal.java
public boolean add(EntityHelper obj) { boolean isSuccessfully = false; SessionFactory sessionFactory = HibernateUtil.getSessionFactory(); Session session = sessionFactory.openSession(); session.beginTransaction();/*ww w . j a v a 2 s . c o m*/ try { session.save(obj); if (obj.getParent() != null) { Set<EntityHelper> set = new HashSet(obj.getParent()); for (Iterator it = set.iterator(); it.hasNext();) { EntityHelper parent_obj = (EntityHelper) session.get(it.next().getClass(), ((EntityHelper) it.next()).getId()); parent_obj.getChild().add(obj); session.update(parent_obj); } } isSuccessfully = true; } catch (HibernateException ex) { System.out.println(ex.getMessage()); } finally { session.getTransaction().commit(); } return isSuccessfully; }
From source file:by.bsuir.akkerman.mobile.server.dao.DaoUniversal.java
public boolean delete(EntityHelper obj) { boolean isSuccessfully = false; SessionFactory sessionFactory = HibernateUtil.getSessionFactory(); Session session = sessionFactory.openSession(); session.beginTransaction();//from w w w.j av a2 s . com try { obj = (EntityHelper) session.get(obj.getClass(), obj.getId()); session.delete(obj); if (!obj.getParent().isEmpty()) { Set<EntityHelper> set = new HashSet(obj.getParent()); for (Iterator it = set.iterator(); it.hasNext();) { EntityHelper parent_obj = (EntityHelper) session.get(it.next().getClass(), ((EntityHelper) it.next()).getId()); parent_obj.getChild().add(obj); session.update(parent_obj); } } if (obj.getParent() != null) { Set<EntityHelper> set = new HashSet(obj.getParent()); for (Iterator it = set.iterator(); it.hasNext();) { String[] lines = it.next().getClass().getName().split("_"); EntityHelper parent_obj = (EntityHelper) session.get(lines[0], ((EntityHelper) it.next()).getId()); parent_obj.getChild().remove(obj); session.update(parent_obj); } } isSuccessfully = true; } catch (HibernateException ex) { System.out.println(ex.getMessage()); } finally { session.getTransaction().commit(); session.close(); } return isSuccessfully; }
From source file:by.telecom.subscriberapp.DAO.GenericDaoImpl.java
public void update(T transientObject) { Session session = null; try {/* w w w. j av a2s .c om*/ session = HibernateUtil.getSessionFactory().openSession(); session.beginTransaction(); session.update(transientObject); session.getTransaction().commit(); } catch (Exception e) { e.printStackTrace(); } finally { if (session != null && session.isOpen()) { session.close(); } } }
From source file:ca.qc.cegepoutaouais.tge.pige.server.LoginServiceImpl.java
License:Open Source License
@Override public SessionObject logIn(String identifier, String password) throws LoginErrorException, MaintenanceModeException { logger.info("Connexion au serveur avec les informations " + "d'identification suivantes:\n" + " Identifiant = " + identifier + "\n" + " Mot de passe = xxxxxx"); Session session = null; Transaction tx = null;/*from ww w. ja v a 2 s.c o m*/ User user = null; String sid = null; try { session = PigeHibernateUtil.openSession(); tx = session.beginTransaction(); user = (User) session.createCriteria(User.class).add(Restrictions.eq(User.IDENTIFIER_REF, identifier)) .setFetchMode(User.ROLE_REF, FetchMode.JOIN).uniqueResult(); tx.commit(); if (user == null) { logger.info("Compte inexistant. Identifiant: " + identifier); throw new LoginErrorException(LoginErrorException.ERROR_INVALID_IDENTIFIER_PASSWORD); } new UserServiceImpl().checkMaintenanceMode(user.getRole()); String hashPwd = ServerUtil.produceSHA1(password == null ? "" : password); if (!hashPwd.equals(user.getPassword())) { Integer fails = user.getFails(); user.setFails(fails + 1); if (fails.intValue() >= maxPasswordLogins && !user.isAdminAccount()) { // Ne doit pas continuer monter. user.setFails(maxPasswordLogins); user.setStatus(UserStatus.STATUS_LOCKED); logger.info("Le compte suivant t barr car il a atteint " + "sa limite de tentative de mot de passe autorise.\n" + "Compte: " + user.asString()); } tx = session.beginTransaction(); session.update(user); tx.commit(); logger.info("Mauvais mot de passe. Compte: " + user.asString()); throw new LoginErrorException(LoginErrorException.ERROR_INVALID_IDENTIFIER_PASSWORD); } String accountStatus = user.getStatus(); if (accountStatus.equals(UserStatus.STATUS_INACTIVE)) { throw new LoginErrorException(LoginErrorException.ERROR_ACCOUNT_INACTIVE); } else if (accountStatus.equals(UserStatus.STATUS_LOCKED)) { throw new LoginErrorException(LoginErrorException.ERROR_ACCOUNT_LOCKED); } // L'authentification russie, il faut donc demander au serveur // un id de session et l'enregistrer au compte de l'usager afin // qu'il n'ait pas besoin de se r-authentifier la prochaine fois // s'il ne se dconnecte pas du serveur. sid = this.getThreadLocalRequest().getSession(true).getId(); user.setSid(sid); // Rinitialiser le compteur d'chec. user.setFails(0); tx = session.beginTransaction(); session.update(user); tx.commit(); logger.info("Le client est maintenant connect! Compte: " + user.asString()); } catch (HibernateException hex) { logger.error(hex); if (tx != null) { tx.rollback(); } } finally { if (session != null) { session.close(); } } // Retourner l'Id de session et la dure de vie du cookie de session // dans un SessionObject. Long cookieLifespan = GenericUtil.hoursToMilliseconds( Long.parseLong(Configurations.getProperties().getProperty("client.cookie.session.lifespan"))); logger.debug("Dure de vie du cookie de session du client: " + cookieLifespan + "ms."); return new SessionObject(sid, cookieLifespan); }
From source file:ca.qc.cegepoutaouais.tge.pige.server.LoginServiceImpl.java
License:Open Source License
@Override public void logOut() { HttpSession httpSession = this.getThreadLocalRequest().getSession(false); if (httpSession == null) { logger.debug("L'object httpSession est nul."); return;//from www . j a v a 2 s. co m } Session session = null; Transaction tx = null; try { session = PigeHibernateUtil.openSession(); tx = session.beginTransaction(); User user = (User) session.createCriteria(User.class) .add(Restrictions.eq(User.SID_REF, httpSession.getId())).uniqueResult(); if (user != null) { user.setSid(null); session.update(user); logger.info("L'usager suivant bien t dconnect du serveur: " + user.asString()); } tx.commit(); } catch (HibernateException hex) { logger.error(hex); if (tx != null) { tx.rollback(); } } finally { if (session != null) { session.close(); } } httpSession.invalidate(); }
From source file:ca.qc.cegepoutaouais.tge.pige.server.LoginServiceImpl.java
License:Open Source License
@Override public void resetPassword(String identifier, String email) throws LoginErrorException { logger.info("Rinitialisation du mot de passe de l'usager et envoi " + "par courriel... Identifiant: " + identifier);/* w w w. ja v a 2s.co m*/ Session session = null; Transaction tx = null; User user = null; String newPwd = null; try { session = PigeHibernateUtil.openSession(); tx = session.beginTransaction(); user = (User) session.createCriteria(User.class).add(Restrictions.eq(User.IDENTIFIER_REF, identifier)) .uniqueResult(); if (user == null || !user.getEmail().equalsIgnoreCase(email)) { logger.debug("Compte inexistant."); throw new LoginErrorException(LoginErrorException.ERROR_ACCOUNT_INVALID); } newPwd = GenericUtil.generateRandomPassword(8); user.setPassword(ServerUtil.produceSHA1(newPwd)); session.update(user); tx.commit(); logger.info("Rinitialisation russie pour l'usager suivant: " + user.asString()); } catch (HibernateException hex) { logger.error(hex); if (tx != null) { tx.rollback(); } } finally { if (session != null) { session.close(); } } // Envoyer une notice de modification de mot de passe la personne // propritaire de ce compte. Properties props = Configurations.getProperties(); EmailService emailService = new EmailService(); emailService.setSubjet(props.getProperty("msg.user.email.password_change.subject")); String body = props.getProperty("msg.user.email.password_change.body"); emailService.setBody(MessageFormat.format(body, user.getFirstname(), newPwd), true); emailService.setRecipient(user.getEmail()); emailService.sendAsync(); }
From source file:ca.qc.cegepoutaouais.tge.pige.server.MaintenanceRecallServiceTask.java
License:Open Source License
@Override public void run() { Boolean enabled = Boolean.parseBoolean( configs.getProperty(ServerConfigs.MAINTENANCE_RECALL_SERVICE_ENABLED, Boolean.FALSE.toString())); if (!enabled) { logger.info("Le service de rappel des maintenances est " + "dsactiv. Pour le ractiver, changez la valeur de la " + "ligne 'server.maintenance_recall_service.enabled' 'true' dans " + "le fichier de configurations et redmarrez le serveur ou " + "bien ractiver-le partir du menu 'Gestion' dans PIGE. " + "(ne ncessite pas de redmarrage)."); return;//from w w w .java 2s . co m } logger.info("Dmarrage du service de rappel des maintenances..."); Transaction tx = null; List<Maintenance> maintenances = null; Session session = null; StringBuilder recallMsg = new StringBuilder(); recallMsg.append("<b>Rappel des maintenances:</b><br/>"); recallMsg.append("<ul>"); Boolean recallToSend = Boolean.FALSE; try { session = PigeHibernateUtil.openSession(); tx = session.beginTransaction(); maintenances = session.createCriteria(Maintenance.class) .add(Restrictions.eq(Maintenance.USE_RECALL_REF, Boolean.TRUE)) .setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY).list(); if (maintenances == null || maintenances.size() == 0) { logger.info("Aucun rappel traiter. Termin."); return; } logger.debug("Nombre de rappel effectuer: " + maintenances.size()); // Construire une date et heure prdfinie afin de servir de // comparaison pour les chances. final Date today = ServerUtil.getTodayDate(); Date startDate = null; Date endDate = null; Date lastRecallDate = null; Integer days = 0; final Long conv = 1000L * 60L * 60L * 24L; for (Maintenance m : maintenances) { logger.debug("Traitement de la maintenance: " + m.toString()); startDate = m.getStartDate(); endDate = m.getEndDate(); logger.debug("Vrification des dates de dmarrage et de fin de rappel..."); if (startDate != null) { startDate = ServerUtil.getZeroDate(startDate); if (today.getTime() < startDate.getTime()) { logger.debug("La date de dpart n'est pas encore atteinte: " + startDate.toString()); continue; } } if (endDate != null) { endDate = ServerUtil.getZeroDate(endDate); if (today.getTime() > endDate.getTime()) { logger.debug("La date de fin est dpasse: " + endDate.toString()); continue; } } logger.debug("Vrification de la frquence du rappel..."); lastRecallDate = m.getLastRecallDate(); if (lastRecallDate == null) { lastRecallDate = today; } logger.debug("Calcule du nombre de jour pass..."); float ms = today.getTime() - lastRecallDate.getTime(); days = new Float(ms / (float) conv).intValue(); logger.debug("ms = " + ms + ", days = " + days); Integer freq = (m.getFrequency() == null ? 0 : m.getFrequency()); if (days >= freq) { logger.debug("Ajout du rappel de maintenance la liste..."); m.setLastRecallDate(today); session.update(m); addTooRecallList(m, recallMsg); recallToSend = Boolean.TRUE; } } // Confirmer les changements la base de donnes. tx.commit(); } catch (Exception hex) { logger.error(hex); if (tx != null) { tx.rollback(); } } finally { if (session != null) { session.close(); } } if (recallToSend) { logger.debug("Envoi du courriel contenant les rappels..."); EmailService email = new EmailService(); email.setRecipient(configs.getProperty("server.maintenance_recall_service.email")); email.setSubjet(configs.getProperty("msg.user.email.maintenance_recall_title")); email.setBody(recallMsg.toString(), Boolean.TRUE); email.sendAsync(); } logger.info("Rappels des maintenances effectus!"); }
From source file:ca.qc.cegepoutaouais.tge.pige.server.ManagementServiceImpl.java
License:Open Source License
@Override public void updatePublicMessage(String newMessage) throws PigeException { PermissionHelper.checkMessageManagementPermission(getThreadLocalRequest()); logger.debug("Mise jour du message public."); Session session = null; Transaction tx = null;// w ww .java 2 s . c o m Message message = null; try { session = PigeHibernateUtil.openSession(); tx = session.beginTransaction(); message = (Message) session.createCriteria(Message.class).uniqueResult(); if (message != null) { message.setMessage(newMessage); session.update(message); } else { session.save(new Message(newMessage)); } tx.commit(); logger.debug("Mise jour russie!"); } catch (HibernateException hex) { logger.error(hex); if (tx != null) { tx.rollback(); } } finally { if (session != null) { session.close(); } } }
From source file:ca.qc.cegepoutaouais.tge.pige.server.ManagementServiceImpl.java
License:Open Source License
@Override public void unfreezeUser(List<Integer> ids) throws PigeException { PermissionHelper.checkUserManagementPermission(getThreadLocalRequest()); logger.debug("Dgle des comptes [ids = " + ids.toString() + "] ..."); Session session = null; Transaction tx = null;//from w w w .j a v a2 s . c o m try { session = PigeHibernateUtil.openSession(); tx = session.beginTransaction(); for (Integer id : ids) { User user = (User) session.load(User.class, id); if (user.getStatus().equals(UserStatus.STATUS_FROZEN)) { user.setStatus(UserStatus.STATUS_ACTIVE); user.setServerMessage(""); session.update(user); } } tx.commit(); logger.debug("Dgle russi!"); } catch (Exception hex) { logger.error(hex); if (tx != null) { tx.rollback(); } } finally { if (session != null) { session.close(); } } }
From source file:ca.qc.cegepoutaouais.tge.pige.server.ManagementServiceImpl.java
License:Open Source License
@Override public void updateRole(Role newRole) throws PigeException { PermissionHelper.checkRoleManagementPermission(getThreadLocalRequest()); logger.debug("Mise jour du rle avec les dtails: " + newRole.asString()); Session session = null; Transaction tx = null;/* ww w. j av a2 s . c o m*/ try { session = PigeHibernateUtil.openSession(); tx = session.beginTransaction(); session.update(newRole); tx.commit(); logger.debug("Mise jour russie!"); } catch (HibernateException hex) { logger.error(hex); if (tx != null) { tx.rollback(); } } finally { if (session != null) { session.close(); } } }