@Nullable protected AccessToken getAccessTokenByTokenValueFromDatabase(String accessTokenValue) { AccessToken accessToken; try (Transaction tx = persistence.createTransaction()) { EntityManager em = persistence.getEntityManager(); accessToken = em.createQuery("select e from sys$AccessToken e where e.tokenValue = :tokenValue", AccessToken.class) .setParameter("tokenValue", accessTokenValue) .setViewName(View.LOCAL) .getFirstResult(); tx.commit(); return accessToken; } }
@Nullable protected RefreshToken getRefreshTokenByTokenValueFromDatabase(String refreshTokenValue) { RefreshToken refreshToken; try (Transaction tx = persistence.createTransaction()) { EntityManager em = persistence.getEntityManager(); refreshToken = em.createQuery("select e from sys$RefreshToken e where e.tokenValue = :tokenValue", RefreshToken.class) .setParameter("tokenValue", refreshTokenValue) .setViewName(View.LOCAL) .getFirstResult(); tx.commit(); return refreshToken; } }
@Nullable protected AccessToken getAccessTokenByAuthenticationKeyFromDatabase(String authenticationKey) { AccessToken accessToken; try (Transaction tx = persistence.createTransaction()) { EntityManager em = persistence.getEntityManager(); accessToken = em.createQuery("select e from sys$AccessToken e where e.authenticationKey = :authenticationKey", AccessToken.class) .setParameter("authenticationKey", authenticationKey) .setViewName(View.LOCAL) .getFirstResult(); tx.commit(); return accessToken; } }
protected int migrateMessagesBatch() { List<SendingMessage> resultList; Transaction tx = persistence.createTransaction(); try { EntityManager em = persistence.getEntityManager(); String qstr = "select m from sys$SendingMessage m where m.contentText is not null"; TypedQuery<SendingMessage> query = em.createQuery(qstr, SendingMessage.class); query.setMaxResults(50); query.setViewName(View.MINIMAL); resultList = query.getResultList(); tx.commit(); } finally { tx.end(); } if (!resultList.isEmpty()) { emailer.migrateEmailsToFileStorage(resultList); } return resultList.size(); }
protected int migrateAttachmentsBatch() { List<SendingAttachment> resultList; Transaction tx = persistence.createTransaction(); try { EntityManager em = persistence.getEntityManager(); String qstr = "select a from sys$SendingAttachment a where a.content is not null"; TypedQuery<SendingAttachment> query = em.createQuery(qstr, SendingAttachment.class); query.setMaxResults(50); query.setViewName(View.MINIMAL); resultList = query.getResultList(); tx.commit(); } finally { tx.end(); } if (!resultList.isEmpty()) { emailer.migrateAttachmentsToFileStorage(resultList); } return resultList.size(); } }
query.setViewName(MOVE_USER_TO_GROUP_VIEW);
query.setViewName("for.cache"); List<Category> resultList = query.getResultList();
protected Map<User, String> updateUserPasswords(List<UUID> userIds, boolean generatePassword) { Map<User, String> modifiedUsers = new LinkedHashMap<>(); Transaction tx = persistence.getTransaction(); try { EntityManager em = persistence.getEntityManager(); TypedQuery<User> query = em.createQuery("select u from sec$User u where u.id in :userIds", User.class); query.setParameter("userIds", userIds); query.setViewName(RESET_PASSWORD_VIEW); List<User> users = query.getResultList(); if (users == null || users.size() != userIds.size()) throw new IllegalStateException("Not all users found in database"); for (User user : users) { String password = null; if (generatePassword) { password = passwordEncryption.generateRandomPassword(); user.setPasswordEncryption(passwordEncryption.getHashMethod()); String passwordHash = passwordEncryption.getPasswordHash(user.getId(), password); user.setPassword(passwordHash); } user.setChangePasswordAtNextLogon(true); modifiedUsers.put(user, password); } resetRememberMeTokens(userIds); tx.commit(); } finally { tx.end(); } return modifiedUsers; }
@Override public List<SearchFolder> loadSearchFolders() { log.debug("Loading SearchFolders"); StopWatch stopWatch = new Slf4JStopWatch("SearchFolders"); stopWatch.start(); Transaction tx = persistence.createTransaction(); try { EntityManager em = persistence.getEntityManager(); MetaClass effectiveMetaClass = metadata.getExtendedEntities().getEffectiveMetaClass(SearchFolder.class); TypedQuery<SearchFolder> q = em.createQuery("select f from "+ effectiveMetaClass.getName() +" f " + "left join f.user u on u.id = ?1 " + "where (u.id = ?1 or u is null) " + "order by f.sortOrder, f.name", SearchFolder.class); q.setViewName("searchFolders"); q.setParameter(1, userSessionSource.currentOrSubstitutedUserId()); List<SearchFolder> list = q.getResultList(); tx.commit(); return list; } finally { tx.end(); stopWatch.stop(); } }