@Override @Transactional(timeout = 2) public String executeUpdateSql(String sql) { checkTestMode(); log.info("started: " + sql); EntityManager em = persistence.getEntityManager(); Query query = em.createNativeQuery(sql); query.executeUpdate(); log.info("finished: " + sql); return "Done"; }
protected synchronized List<ScheduledTask> getTasks() { log.trace("Read all active tasks from DB and lock them"); EntityManager em = persistence.getEntityManager(); Query query = em.createQuery("select t from sys$ScheduledTask t where t.active = true"); query.setLockMode(LockModeType.PESSIMISTIC_WRITE); return query.getResultList(); } }
private Config getConfigInstance(String name) { EntityManager em = persistence.getEntityManager(); TypedQuery<Config> query = em.createQuery("select c from sys$Config c where c.name = ?1", Config.class); query.setParameter(1, name); query.setView(null); List<Config> list = query.getResultList(); if (list.isEmpty()) return null; else return list.get(0); } }
@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 long getLastFinished(ScheduledTask task) { EntityManager em = persistence.getEntityManager(); Query query = em.createQuery( "select max(e.finishTime) from sys$ScheduledExecution e where e.task.id = ?1") .setParameter(1, task.getId()); Date date = (Date) query.getFirstResult(); return date == null ? 0 : date.getTime(); }
@Override public void emptyFakeQueue(String entityName) { EntityManager em = persistence.getEntityManager(); Query q = em.createQuery("delete from sys$FtsQueue q where q.entityName = ?1 and q.fake = true"); q.setParameter(1, entityName); q.executeUpdate(); }
protected void transactional(Closure closure) { Persistence persistence = AppBeans.get(Persistence.class); Transaction tx = persistence.getTransaction(); try { closure.call(persistence.getEntityManager()); tx.commit(); } finally { tx.end(); } } }
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); } }
@Nullable protected RememberMeToken loadRememberMeToken(User user, String rememberMeToken) { EntityManager em = persistence.getEntityManager(); TypedQuery<RememberMeToken> query = em.createQuery( "select rt from sec$RememberMeToken rt where rt.token = :token and rt.user.id = :userId", RememberMeToken.class); query.setParameter("token", rememberMeToken); query.setParameter("userId", user.getId()); return query.getFirstResult(); }
@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); } }
@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(); } }
protected void restoreEntity(Entity entity, String storeName) { EntityManager em = persistence.getEntityManager(storeName); Entity reloadedEntity = em.find(entity.getClass(), entity.getId()); if (reloadedEntity != null && ((SoftDelete) reloadedEntity).isDeleted()) { log.info("Restoring deleted entity " + entity); Date deleteTs = ((SoftDelete) reloadedEntity).getDeleteTs(); ((SoftDelete) reloadedEntity).setDeleteTs(null); em.merge(reloadedEntity); restoreDetails(reloadedEntity, deleteTs, storeName); } }
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(); } }
public void setEntity(Entity entity) { this.entity = entity; this.metaClass = metadata.getSession().getClass(entity.getClass()); primaryKeyName = metadata.getTools().getPrimaryKeyName(metaClass); String storeName = metadata.getTools().getStoreName(metaClass); entityManager = persistence.getEntityManager(storeName == null ? Stores.MAIN : storeName); }
@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(); } }
protected void checkIfFileDescriptorExists(FileDescriptor fd) throws FileStorageException { try (Transaction tx = persistence.getTransaction()) { FileDescriptor existingFile = persistence.getEntityManager().find(FileDescriptor.class, fd.getId()); if (existingFile == null || entityStates.isDeleted(existingFile)) { throw new FileStorageException(FileStorageException.Type.FILE_NOT_FOUND, fd.getName()); } 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(); } }