@Override public Context begin() { Transaction tx = persistence.createTransaction(); try { List<ScheduledTask> tasks = getTasks(); return new ContextImpl(tasks, tx); } catch (Exception e) { tx.end(); throw new RuntimeException(e); } }
@Override public void migrateAttachmentsToFileStorage(List<SendingAttachment> attachments) { try (Transaction tx = persistence.createTransaction()) { EntityManager em = persistence.getEntityManager(); for (SendingAttachment attachment : attachments) { migrateAttachment(em, attachment); } tx.commit(); } }
@Override public void migrateEmailsToFileStorage(List<SendingMessage> messages) { try (Transaction tx = persistence.createTransaction()) { EntityManager em = persistence.getEntityManager(); for (SendingMessage msg : messages) { migrateMessage(em, msg); } tx.commit(); } }
@Nullable protected String getAccessTokenValueByRefreshTokenValueFromDatabase(String refreshTokenValue) { String accessTokenValue; try (Transaction tx = persistence.createTransaction()) { EntityManager em = persistence.getEntityManager(); accessTokenValue = em.createQuery("select e.tokenValue from sys$AccessToken e where e.refreshTokenValue = :refreshTokenValue", String.class) .setParameter("refreshTokenValue", refreshTokenValue) .getFirstResult(); tx.commit(); return accessTokenValue; } }
protected Set<String> getRefreshTokenValuesByUserLoginFromDatabase(String userLogin) { try (Transaction tx = persistence.createTransaction()) { EntityManager em = persistence.getEntityManager(); List<String> result = em.createQuery("select e.tokenValue from sys$RefreshToken e where e.userLogin = :userLogin", String.class) .setParameter("userLogin", userLogin) .getResultList(); tx.commit(); return new HashSet<>(result); } }
protected Set<String> getAccessTokenValuesByUserLoginFromDatabase(String userLogin) { try (Transaction tx = persistence.createTransaction()) { EntityManager em = persistence.getEntityManager(); List<String> result = em.createQuery("select e.tokenValue from sys$AccessToken e where e.userLogin = :userLogin", String.class) .setParameter("userLogin", userLogin) .getResultList(); tx.commit(); return new HashSet<>(result); } }
protected void deleteExpiredAccessTokensInDatabase() { try (Transaction tx = persistence.createTransaction()) { EntityManager em = persistence.getEntityManager(); em.createQuery("delete from sys$AccessToken t where t.expiry < CURRENT_TIMESTAMP") .executeUpdate(); tx.commit(); } }
@Override public void deleteSettings(ClientType clientType, String name) { try (Transaction tx = persistence.createTransaction()) { UserSetting us = findUserSettings(clientType, name); if (us!=null){ EntityManager em = persistence.getEntityManager(); em.remove(us); } tx.commit(); } }
protected void deleteExpiredRefreshTokensInDatabase() { try (Transaction tx = persistence.createTransaction()) { EntityManager em = persistence.getEntityManager(); em.createQuery("delete from sys$RefreshToken t where t.expiry < CURRENT_TIMESTAMP") .executeUpdate(); tx.commit(); } }
@Override public void afterCommit() { Object entityId = e.getId(); try (Transaction tx = persistence.createTransaction()) { enqueue(metaClass.getName(), entityId, FtsChangeType.UPDATE); tx.commit(); } } });
@Override public <T extends Entity> Collection<T> loadEntitiesForSoftReference(Class<T> polymorphicEntityClass, Entity softReference, String attribute, String view) { Transaction tx = persistence.createTransaction(); EntityManager em = persistence.getEntityManager(); Query query = createPolymorphicQuery(em, polymorphicEntityClass, attribute, softReference, view); List result = query.getResultList(); tx.commit(); return result; }
@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; } }
@Override public String loadSetting(ClientType clientType, String name) { String value; try (Transaction tx = persistence.createTransaction(new TransactionParams().setReadOnly(true))) { UserSetting us = findUserSettings(clientType, name); value = us == null ? null : us.getValue(); tx.commit(); } return value; }
@Override public void setActive(Set<ScheduledTask> tasks, boolean active) { try (Transaction tx = persistence.createTransaction()) { EntityManager em = persistence.getEntityManager(); for (ScheduledTask task : tasks) { ScheduledTask t = em.find(ScheduledTask.class, task.getId()); t.setActive(active); } tx.commit(); } }
@Override public void resetRememberMeTokens() { Transaction tx = persistence.createTransaction(); try { EntityManager em = persistence.getEntityManager(); Query query = em.createQuery("delete from sec$RememberMeToken rt"); query.executeUpdate(); tx.commit(); } finally { tx.end(); } }
@Override public EntitySnapshot createSnapshot(Entity entity, View view, Date snapshotDate, User author) { EntitySnapshot snapshot = createEntitySnapshot(entity, view, snapshotDate, author); Transaction tx = persistence.createTransaction(); try { EntityManager em = persistence.getEntityManager(); em.persist(snapshot); tx.commit(); } finally { tx.end(); } return snapshot; }
@Override public void saveOwnLocale(String locale) { UUID userId = userSessionSource.getUserSession().getUser().getId(); log.debug("Saving user's {} language settings: {}", userId, locale); try (Transaction tx = persistence.createTransaction()) { EntityManager em = persistence.getEntityManager(); User user = em.find(User.class, userId, "user.locale"); if (user == null) throw new EntityAccessException(User.class, userId); user.setLanguage(locale); tx.commit(); } }
@Override public void setActive(ScheduledTask task, boolean active) { Transaction tx = persistence.createTransaction(); try { EntityManager em = persistence.getEntityManager(); ScheduledTask t = em.find(ScheduledTask.class, task.getId()); t.setActive(active); tx.commit(); } finally { tx.end(); } }
@Override public void afterCommit() { Number id = item.getDbGeneratedIdEntity().getId().getNN(); item.setObjectEntityId(id); try (Transaction tx = persistence.createTransaction()) { EntityManager em = persistence.getEntityManager(); em.persist(item); tx.commit(); } } });
@Override public String loadOwnLocale() { try (Transaction tx = persistence.createTransaction()) { EntityManager em = persistence.getEntityManager(); User user = em.find(User.class, userSessionSource.getUserSession().getUser().getId(), "user.locale"); if (user == null) throw new EntityAccessException(User.class, userSessionSource.getUserSession().getUser().getId()); tx.commit(); return user.getLanguage(); } }