List of usage examples for org.hibernate FetchMode JOIN
FetchMode JOIN
To view the source code for org.hibernate FetchMode JOIN.
Click Source Link
From source file:br.com.hslife.orcamento.repository.AuditoriaRepository.java
License:Open Source License
public Auditoria findById(Long id) { Criteria criteria = getSession().createCriteria(Auditoria.class).setFetchMode("dadosAuditoria", FetchMode.JOIN); criteria.add(Restrictions.eq("id", id)); return (Auditoria) criteria.uniqueResult(); }
From source file:br.com.hslife.orcamento.repository.ItemDespensaRepository.java
License:Open Source License
@Override public ItemDespensa findById(Long id) { Criteria criteria = getSession().createCriteria(ItemDespensa.class).setFetchMode("movimentacao", FetchMode.JOIN); criteria.add(Restrictions.eq("id", id)); return (ItemDespensa) criteria.uniqueResult(); }
From source file:br.com.rhmanager.daoImpl.FuncionarioDAOImpl.java
@Override public List<Funcionario> getFuncionariosBusca(String nome, String cpf, Cargo cargo) { Session session = null;/*from w w w .j a v a 2 s . com*/ try { session = HibernateUtil.getSession(); Criteria criteria = session.createCriteria(Funcionario.class); if (nome.length() > 0) { criteria.add(Restrictions.ilike("nome", "%" + nome + "%")); } if (cpf.length() > 0) { criteria.add(Restrictions.ilike("cpf", cpf + "%")); } criteria.setFetchMode("cargos", FetchMode.JOIN); return criteria.list(); } catch (Exception e) { e.printStackTrace(); return null; } finally { if (!session.isConnected()) { session.close(); } } }
From source file:ca.qc.cegepoutaouais.tge.pige.server.LoanTermVerificatorTask.java
License:Open Source License
@Override public void run() { Boolean enabled = Boolean.parseBoolean(Configurations.getProperties() .getProperty(ServerConfigs.LOAN_TERM_VERIFICATOR_ENABLED, Boolean.FALSE.toString())); if (!enabled) { logger.info("Le vrificateur d'chance des emprunts est " + "dsactiv. Pour le ractiver, changez la valeur de la " + "ligne 'server.loan_verificator.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 . j a v a2s. c om*/ } logger.info("Dmarrage de la vrification des chances des emprunts..."); Transaction tx = null; List<User> users = null; Session session = null; try { session = PigeHibernateUtil.openSession(); tx = session.beginTransaction(); // Activer le filtre permettant d'exclure les demandes d'emprunt // qui ne sont ni acceptes, ni en retard. Ce filtre est appliqu // la jointure qui permet de rcuprer les demandes d'emprunt // associ au compte. Filter filter = session.enableFilter(Loan.STATUS_FILTER_2PARAM); filter.setParameter(Loan.STATUS_FILTER_PARAM1, LoanStatus.STATUS_LENT); filter.setParameter(Loan.STATUS_FILTER_PARAM2, LoanStatus.STATUS_LATE); // Construire et excuter la requte permettant de rcuprer les // comptes. Une jointure externe permet de rcuprer les demandes // d'emprunt du compte immdiatement dans la mme requte SQL. Criteria crit = session.createCriteria(User.class).setFetchMode(User.LOAN_COLLECTION_REF, FetchMode.JOIN); users = (List) crit.list(); if (users == null) { users = new ArrayList(); } Set userSet = new HashSet(users); Set loans; User user; Loan loan; // Construire une date et heure prdfinie afin de servir de // comparaison pour les chances. Calendar today = Calendar.getInstance(); today.setTime(new Date()); today.set(Calendar.MILLISECOND, 0); today.set(Calendar.SECOND, 0); today.set(Calendar.MINUTE, 0); today.set(Calendar.HOUR, 0); // Date et heure pour l'chance. Calendar term = Calendar.getInstance(); // Itrer dans chaque usager contenant des emprunts en retard... for (Iterator<User> itr = userSet.iterator(); itr.hasNext();) { user = itr.next(); loans = user.getLoans(); boolean hasLate = false; int lateLoanCount = 0; StringBuffer lateLoansDesc = new StringBuffer("<ul>"); // Itrer dans chacun des emprunts en retard de l'usager... for (Iterator<Loan> itr2 = loans.iterator(); itr2.hasNext();) { loan = itr2.next(); // L'heure exacte laquelle un emprunt devient en retard. // 18h00 1 milliseconde. term.setTime(loan.getTerm()); // Rcuprer la date. term.set(Calendar.MILLISECOND, 1); term.set(Calendar.SECOND, 0); term.set(Calendar.MINUTE, 0); term.set(Calendar.HOUR, 18); if (today.after(term)) { logger.debug("Emprunts en retard pour " + user.toString() + ":"); logger.debug(" Today = " + today.getTime().toString()); logger.debug(" Term = " + term.getTime().toString()); // Changer l'tat de l'emprunt. loan.setStatus(LoanStatus.STATUS_LATE); hasLate = true; lateLoanCount++; lateLoansDesc.append( "<li>Qt: " + loan.getQuantity() + ", Desc: " + loan.getDescription() + "</li>"); } } lateLoansDesc.append("</ul><br/><br/>"); if (hasLate) { // Geler le compte de l'utilisateur et indiquer un message // de retard. user.setStatus(UserStatus.STATUS_FROZEN); user.setServerMessage(MessageFormat.format(msgToUser, lateLoanCount)); // Crer un envoi de courriel. Il sera envoy la fin de la // vrification avec les autres retards. EmailService email = new EmailService(); email.setRecipient(user.getEmail()); email.setSubjet( Configurations.getProperties().getProperty("msg.user.email.loan_lateness.subject")); email.setBody(MessageFormat.format( Configurations.getProperties().getProperty("msg.user.email.loan_lateness.body"), lateLoanCount, lateLoansDesc.toString()), true); email.addToBatch(); logger.info("Le compte suivant a t gel cause qu'il " + "contient des emprunts en retard: " + user.asString()); } } // Confirmer les changements la base de donnes. tx.commit(); sendNotifications(today); } catch (Exception hex) { logger.error(hex); if (tx != null) { tx.rollback(); } } finally { if (session != null) { session.close(); } } logger.info("Vrification termine!"); }
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;/*from w w w . ja va 2 s. c o m*/ Transaction tx = null; 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.UserServiceImpl.java
License:Open Source License
public Role getCurrentRole(HttpSession httpSession) throws PigeException { logger.debug("Rcupration du rle associ au thread courant..."); if (httpSession == null) { throw new DisconnectedClientException(); }//from w w w. jav a2 s . co m Role role = null; User user = null; Session session = null; Transaction tx = null; try { session = PigeHibernateUtil.openSession(); tx = session.beginTransaction(); user = (User) session.createCriteria(User.class).add(Restrictions.eq(User.SID_REF, httpSession.getId())) .setFetchMode(User.ROLE_REF, FetchMode.JOIN).uniqueResult(); if (user != null) { role = user.getRole(); tx.commit(); logger.debug("Rcupration russie"); } else { // L'usager n'est plus connect avec le session id enregistr // dans son compte. Il peut-tre changer de fureteur ou chang // d'ordinateur. Sa session n'est donc plus valide. throw new DisconnectedClientException(); } } catch (HibernateException hex) { logger.error(hex); if (tx != null) { tx.rollback(); } } catch (DisconnectedClientException nlex) { logger.error(nlex); if (tx != null) { tx.rollback(); } throw nlex; } finally { if (session != null) { session.close(); } } // Vrifier si le mode maintenance est activ et si oui, vrifier s'il // un rle permettant de travailler dans ce mode. // Cette vrification se fait ici car chaque action doit passer par ici // pour obtenir le rle et ainsi connatre les permissions. checkMaintenanceMode(role); return role; }
From source file:ca.qc.cegepoutaouais.tge.pige.server.UserServiceImpl.java
License:Open Source License
/** * //from ww w . j av a 2s. c o m * {@inheritDoc} */ @Override public Set<Tag> getAllTag() { HttpSession httpSession = this.getThreadLocalRequest().getSession(); logger.debug("Rcupration de tous les libells du compte associ au " + "thead courant... Session id: " + httpSession.getId()); Session session = null; Transaction tx = null; Set<Tag> tagSet = null; try { session = PigeHibernateUtil.openSession(); tx = session.beginTransaction(); User user = (User) session.createCriteria(User.class) .add(Restrictions.eq(User.SID_REF, httpSession.getId())) .setFetchMode(User.TAG_COLLECTION_REF, FetchMode.JOIN).uniqueResult(); logger.info("Rcupration des libells du compte suivant: " + user.asString()); tagSet = user.getTags(); tx.commit(); logger.debug("Rcupration russie!"); } catch (HibernateException ex) { logger.error(ex); if (tx != null) { tx.rollback(); } } finally { if (session != null) { session.close(); } } return tagSet; }
From source file:ca.qc.cegepoutaouais.tge.pige.server.UserServiceImpl.java
License:Open Source License
/** * * {@inheritDoc}//from w w w . j ava2 s . c o m */ @Override public void updateTags(Set<Tag> tags) { HttpSession httpSession = this.getThreadLocalRequest().getSession(); logger.debug("Mise jour des libells du compte associ au " + "thead courant... Session id: " + httpSession.getId()); 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())) .setFetchMode(User.TAG_COLLECTION_REF, FetchMode.JOIN).uniqueResult(); logger.info("Mise jour des libells du compte suivant: " + user.asString()); Set<Tag> currentTags = user.getTags(); currentTags.retainAll(tags); Iterator<Tag> itr = tags.iterator(); Tag tag; while (itr.hasNext()) { tag = itr.next(); if (!currentTags.contains(tag)) { user.addTag(tag); } } tx.commit(); logger.debug("Mise jour russie!"); } catch (HibernateException ex) { logger.error(ex); if (tx != null) { tx.rollback(); } } finally { if (session != null) { session.close(); } } }
From source file:ch.astina.hesperid.dao.hibernate.FilterGridDataSource.java
License:Apache License
@Override protected void applyAdditionalConstraints(Criteria criteria) { for (String join : joins) { criteria.setFetchMode(join, FetchMode.JOIN); }//from w w w. j a v a 2s . com for (Entry<String, String> alias : aliases.entrySet()) { criteria.createAlias(alias.getKey(), alias.getValue()); } for (Criterion filter : filters) { criteria.add(filter); } if (order != null) { criteria.addOrder(order); } }
From source file:ch.systemsx.cisd.openbis.generic.server.dataaccess.db.AbstractGenericEntityDAO.java
License:Apache License
public final T tryGetByTechId(final TechId techId, String... connections) throws DataAccessException { assert techId != null : "Technical identifier unspecified."; final Criteria criteria = getSession().createCriteria(getEntityClass()); criteria.add(Restrictions.eq("id", techId.getId())); for (String connection : connections) { criteria.setFetchMode(connection, FetchMode.JOIN); }// w w w . ja va 2 s . c o m final T result = tryGetEntity(criteria.uniqueResult()); if (operationLog.isDebugEnabled()) { operationLog.debug( String.format("%s(%s): '%s'.", MethodUtils.getCurrentMethod().getName(), techId, result)); } return result; }