Example usage for org.hibernate Session update

List of usage examples for org.hibernate Session update

Introduction

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

Prototype

void update(Object object);

Source Link

Document

Update the persistent instance with the identifier of the given detached instance.

Usage

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();
        }
    }

}