@Override public void run(EntityManager em) { Query query = em.createQuery("delete from sys$ScheduledExecution e where e.id in ?1"); query.setParameter(1, subList); query.executeUpdate(); } });
@Override public void emptyQueue() { EntityManager em = persistence.getEntityManager(); Query q = em.createQuery("delete from sys$FtsQueue q"); q.executeUpdate(); }
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 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(); }
private Query createPolymorphicQuery(EntityManager em, Class<? extends Entity> polymorphicEntityClass, String attribute, Entity softReference, String view) { String tableName = getTableNameFromEntityClass(polymorphicEntityClass); Query query = em.createQuery("select e from " + tableName + " e where e." + attribute + " = :softReference"); query.setParameter("softReference", softReference, false); if (view != null) { query.setView(polymorphicEntityClass, view); } return query; }
@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 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); } }
@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> 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(); } }
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 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 removeAccessTokenFromDatabase(String accessTokenValue) { try (Transaction tx = persistence.getTransaction()) { EntityManager em = persistence.getEntityManager(); em.createQuery("delete from sys$AccessToken t where t.tokenValue = :tokenValue") .setParameter("tokenValue", accessTokenValue) .executeUpdate(); tx.commit(); } }
protected void removeRefreshTokenFromDatabase(String refreshTokenValue) { try (Transaction tx = persistence.getTransaction()) { EntityManager em = persistence.getEntityManager(); em.createQuery("delete from sys$RefreshToken t where t.tokenValue = :tokenValue") .setParameter("tokenValue", refreshTokenValue) .executeUpdate(); tx.commit(); } }
protected boolean referenceExists(String entityName, MetaProperty property) { String template = property.getRange().getCardinality().isMany() ? "select count(e) from %s e join e.%s c where c." + primaryKeyName + "= ?1" : "select count(e) from %s e where e.%s." + primaryKeyName + " = ?1"; String qstr = String.format(template, entityName, property.getName()); Query query = entityManager.createQuery(qstr); query.setParameter(1, entity.getId()); query.setMaxResults(1); Long count = (Long) query.getSingleResult(); return count > 0; }
protected void cascade(String entityName, MetaProperty property) { String template = property.getRange().getCardinality().isMany() ? "select e from %s e join e.%s c where c." + primaryKeyName + " = ?1" : "select e from %s e where e.%s." + primaryKeyName + " = ?1"; String qstr = String.format(template, entityName, property.getName()); Query query = entityManager.createQuery(qstr); query.setParameter(1, entity.getId()); List<Entity> list = query.getResultList(); for (Entity e : list) { entityManager.remove(e); } }
@Nullable protected UserSetting findUserSettings(ClientType clientType, String name) { EntityManager em = persistence.getEntityManager(); TypedQuery<UserSetting> q = em.createQuery( "select s from sec$UserSetting s where s.user.id = ?1 and s.name =?2 and s.clientType = ?3", UserSetting.class); q.setParameter(1, userSessionSource.getUserSession().getUser().getId()); q.setParameter(2, name); q.setParameter(3, clientType == null ? null : clientType.getId()); return q.getFirstResult(); }
protected Entity getReference(Entity entity, MetaProperty property) { if (PersistenceHelper.isLoaded(entity, property.getName())) return entity.getValue(property.getName()); else { Query query = entityManager.createQuery( "select e." + property.getName() + " from " + entity.getMetaClass().getName() + " e where e." + primaryKeyName + " = ?1"); query.setParameter(1, entity.getId()); Object refEntity = query.getFirstResult(); return (Entity) refEntity; } }