@Override @Transactional(value="defaultTransactionManager") public void clearDuplicateRefreshTokens() { Query query = manager.createQuery("select a.jwt, count(1) as c from OAuth2RefreshTokenEntity a GROUP BY a.jwt HAVING count(1) > 1"); @SuppressWarnings("unchecked") List<Object[]> resultList = query.getResultList(); List<JWT> values = new ArrayList<>(); for (Object[] r : resultList) { logger.warn("Found duplicate refresh tokens: {}, {}", ((JWT)r[0]).serialize(), r[1]); values.add((JWT) r[0]); } if (values.size() > 0) { CriteriaBuilder cb = manager.getCriteriaBuilder(); CriteriaDelete<OAuth2RefreshTokenEntity> criteriaDelete = cb.createCriteriaDelete(OAuth2RefreshTokenEntity.class); Root<OAuth2RefreshTokenEntity> root = criteriaDelete.from(OAuth2RefreshTokenEntity.class); criteriaDelete.where(root.get("jwt").in(values)); int result = manager.createQuery(criteriaDelete).executeUpdate(); logger.warn("Deleted {} duplicate refresh tokens", result); } }
@Override @Transactional(value="defaultTransactionManager") public void clearDuplicateAccessTokens() { Query query = manager.createQuery("select a.jwt, count(1) as c from OAuth2AccessTokenEntity a GROUP BY a.jwt HAVING count(1) > 1"); @SuppressWarnings("unchecked") List<Object[]> resultList = query.getResultList(); List<JWT> values = new ArrayList<>(); for (Object[] r : resultList) { logger.warn("Found duplicate access tokens: {}, {}", ((JWT)r[0]).serialize(), r[1]); values.add((JWT) r[0]); } if (values.size() > 0) { CriteriaBuilder cb = manager.getCriteriaBuilder(); CriteriaDelete<OAuth2AccessTokenEntity> criteriaDelete = cb.createCriteriaDelete(OAuth2AccessTokenEntity.class); Root<OAuth2AccessTokenEntity> root = criteriaDelete.from(OAuth2AccessTokenEntity.class); criteriaDelete.where(root.get("jwt").in(values)); int result = manager.createQuery(criteriaDelete).executeUpdate(); logger.warn("Deleted {} duplicate access tokens", result); } }
@Override public int deleteAll() { return execute(session -> { CriteriaBuilder builder = session.getCriteriaBuilder(); CriteriaDelete<T> delete = builder.createCriteriaDelete(getEntityClass()); delete.from(getEntityClass()); return session.createQuery(delete).executeUpdate(); }); }
protected <E extends Identifiable, T> void _deleteGlobalRecordsForType(E entity, EntityManager em, Class<T> clazz) { if(JPAEntity.class.isAssignableFrom(entity.getClass())) { JPAEntity jpaEntity = JPAEntity.class.cast(entity); CriteriaBuilder cb = em.getCriteriaBuilder(); CriteriaDelete<T> update = cb.createCriteriaDelete(clazz); Root<T> from = update.from(clazz); update.where(cb.equal(from.get("entity"), jpaEntity)); em.createQuery(update).executeUpdate(); }else { throw new IllegalArgumentException("Entity - " + entity.getClass() + " is not of type JPAEntity"); } }
@SuppressWarnings({"unchecked", "rawtypes"}) private void deleteAllEntities(Class<?>... entityTypes) { for (Class entityType : entityTypes) { CriteriaBuilder builder = entityManager.getCriteriaBuilder(); CriteriaDelete query = builder.createCriteriaDelete(entityType); query.from(entityType); entityManager.createQuery(query).executeUpdate(); } }
protected <E extends Identifiable, T> void _deleteGlobalRecordsForType(E entity, EntityManager em, Class<T> clazz) { if(JPAEntity.class.isAssignableFrom(entity.getClass())) { JPAEntity jpaEntity = JPAEntity.class.cast(entity); CriteriaBuilder cb = em.getCriteriaBuilder(); CriteriaDelete<T> update = cb.createCriteriaDelete(clazz); Root<T> from = update.from(clazz); update.where(cb.equal(from.get("entity"), jpaEntity)); em.createQuery(update).executeUpdate(); }else { throw new IllegalArgumentException("Entity - " + entity.getClass() + " is not of type JPAEntity"); } }
@SuppressWarnings({"unchecked", "rawtypes"}) private void deleteAllEntities(Class<?>... entityTypes) { for (Class entityType : entityTypes) { CriteriaBuilder builder = entityManager.getCriteriaBuilder(); CriteriaDelete query = builder.createCriteriaDelete(entityType); query.from(entityType); entityManager.createQuery(query).executeUpdate(); } }
@Override public void delete(Long primaryKey) { transactionControl.required(() -> { CriteriaBuilder builder = em.getCriteriaBuilder(); CriteriaDelete<PersonEntity> query = builder.createCriteriaDelete(PersonEntity.class); Root<PersonEntity> from = query.from(PersonEntity.class); query.where(builder.equal(from.get("personId"), primaryKey)); em.createQuery(query).executeUpdate(); logger.info("Deleted Person with ID : {}", primaryKey); return null; }); }
@Override public void delete(Long primaryKey) { transactionControl.required(() -> { CriteriaBuilder builder = em.getCriteriaBuilder(); CriteriaDelete<PersonEntity> query = builder.createCriteriaDelete(PersonEntity.class); Root<PersonEntity> from = query.from(PersonEntity.class); query.where(builder.equal(from.get("personId"), primaryKey)); em.createQuery(query).executeUpdate(); logger.info("Deleted Person with ID : {}", primaryKey); return null; }); }
@Override public void delete(Long personId) { transactionControl.required(() -> { CriteriaBuilder builder = em.getCriteriaBuilder(); CriteriaDelete<AddressEntity> query = builder.createCriteriaDelete(AddressEntity.class); Root<AddressEntity> from = query.from(AddressEntity.class); query.where(builder.equal(from.get("person").get("personId"), personId)); em.createQuery(query).executeUpdate(); return null; }); } }
@Override public void delete(Long personId) { transactionControl.required(() -> { CriteriaBuilder builder = em.getCriteriaBuilder(); CriteriaDelete<AddressEntity> query = builder.createCriteriaDelete(AddressEntity.class); Root<AddressEntity> from = query.from(AddressEntity.class); query.where(builder.equal(from.get("person").get("personId"), personId)); em.createQuery(query).executeUpdate(); return null; }); } }
@Override public int deleteAllDepartments() { CriteriaBuilder cb = this.em.getCriteriaBuilder(); CriteriaDelete<Department> cd = cb.createCriteriaDelete(Department.class); cd.from(Department.class); return this.em.createQuery(cd).executeUpdate(); } }
@Override public int deleteAllEmployees() { CriteriaBuilder cb = this.em.getCriteriaBuilder(); CriteriaDelete<Employee> cd = cb.createCriteriaDelete(Employee.class); cd.from(Employee.class); return this.em.createQuery(cd).executeUpdate(); }
protected static <T extends Model> void deleteAll(final Class<T> clazz, final Filter filter) { execute(manager -> { CriteriaBuilder builder = manager.getCriteriaBuilder(); CriteriaDelete<T> deleteQuery = builder.createCriteriaDelete(clazz); Root<T> root = deleteQuery.from(clazz); filter.constructQuery(builder, deleteQuery, root); Query query = createQuery(deleteQuery, filter); return query.executeUpdate(); }, false); }
/** * @param id */ @Override public void delete(ID id) throws GPDAOException { checkArgument(id != null, "The Parameter ID must not be null."); try { CriteriaDelete<T> criteriaDelete = this.createCriteriaDelete(); Root<T> root = criteriaDelete.from(super.getPersistentClass()); criteriaDelete.where(this.criteriaBuilder().equal(root.get("id"), id)); this.entityManager.createQuery(criteriaDelete).executeUpdate(); } catch (Exception ex) { ex.printStackTrace(); throw new GPDAOException(ex); } }
@Override public long remove(Specification<A> specification) { CriteriaBuilder cb = entityManager.getCriteriaBuilder(); Class<A> entityClass = getAggregateRootClass(); CriteriaDelete<A> cd = cb.createCriteriaDelete(entityClass); cd.where(specificationTranslator .translate(specification, new JpaTranslationContext<>(cb, cd.from(entityClass)))); return entityManager.createQuery(cd).executeUpdate(); }
@Transactional public void deleteAll() { CriteriaDelete<EntityWithCDIAwareBridges> delete = entityManager.getCriteriaBuilder() .createCriteriaDelete( EntityWithCDIAwareBridges.class ); delete.from( EntityWithCDIAwareBridges.class ); entityManager.createQuery( delete ).executeUpdate(); }
/** * @param id */ @Override public void delete(ID id) throws GPDAOException { checkArgument(id != null, "The Parameter ID must not be null."); try { CriteriaBuilder criteriaBuilder = super.criteriaBuilder(); CriteriaDelete<T> criteriaDelete = super.createCriteriaDelete(); Root<T> root = criteriaDelete.from(this.persistentClass); criteriaDelete.where(criteriaBuilder.equal(root.get("id"), id)); this.currentSession().createQuery(criteriaDelete).executeUpdate(); } catch (Exception ex) { ex.printStackTrace(); throw new GPDAOException(ex); } }
/** * @param id * @return {@link Integer} * @throws GPDAOException */ @Override public Integer deleteByID(ID id) throws GPDAOException { checkArgument(id != null, "The Parameter ID must not be null."); try { CriteriaDelete<T> criteriaDelete = this.createCriteriaDelete(); Root<T> root = criteriaDelete.from(super.getPersistentClass()); criteriaDelete.where(this.criteriaBuilder().equal(root.get("id"), id)); return currentSession().createQuery(criteriaDelete).executeUpdate(); } catch (HibernateException ex) { logger.error("HibernateException : " + ex); throw new GPDAOException(ex); } }
public <T extends PostModerate> int deleteSpam(EntityManager entityManager, Class<T> postModerateClass) { CriteriaBuilder builder = entityManager.getCriteriaBuilder(); CriteriaDelete<T> delete = builder.createCriteriaDelete(postModerateClass); Root<T> root = delete.from(postModerateClass); int daysValidityThreshold = (Post.class.isAssignableFrom(postModerateClass)) ? 7 : 3; delete .where( builder.and( builder.equal(root.get("status"), PostStatus.SPAM), builder.lessThanOrEqualTo(root.get("updatedOn"), Timestamp.valueOf(LocalDateTime.now().minusDays(daysValidityThreshold))) ) ); return entityManager.createQuery(delete).executeUpdate(); }