protected final DeleteCriteriaBuilder<?> createCollectionDeleter(UpdateContext context) { DeleteCriteriaBuilder<?> deleteCb = context.getEntityViewManager().getCriteriaBuilderFactory().deleteCollection(context.getEntityManager(), ownerEntityClass, "e", getMapping()); deleteCb.setWhereExpression(ownerIdWhereFragment); return deleteCb; }
protected final DeleteCriteriaBuilder<?> createCollectionDeleter(UpdateContext context) { DeleteCriteriaBuilder<?> deleteCb = context.getEntityViewManager().getCriteriaBuilderFactory().deleteCollection(context.getEntityManager(), ownerEntityClass, "e", getMapping()); deleteCb.setWhereExpression(ownerIdWhereFragment); return deleteCb; }
public List<PostFlushDeleter> removeByOwnerId(UpdateContext context, Object ownerId) { EntityViewManagerImpl evm = context.getEntityViewManager(); List<Object> elementIds = (List<Object>) evm.getCriteriaBuilderFactory().create(context.getEntityManager(), parentEntityClass, "e") .where(parentIdAttributeName).eq(ownerId) .select("e." + attributeName + "." + childIdAttributeName) .getResultList(); if (!elementIds.isEmpty()) { // We must always delete this, otherwise we might get a constraint violation because of the cascading delete DeleteCriteriaBuilder<?> cb = evm.getCriteriaBuilderFactory().deleteCollection(context.getEntityManager(), parentEntityClass, "e", attributeName); cb.where(parentIdAttributeName).eq(ownerId); cb.executeUpdate(); } return Collections.<PostFlushDeleter>singletonList(new PostFlushInverseCollectionElementByIdDeleter(deleter, elementIds)); }
List<Tuple> tuples = evm.getCriteriaBuilderFactory().deleteCollection(context.getEntityManager(), ownerEntityClass, "e", attributeName) .where(ownerIdAttributeName).eq(ownerId) .executeWithReturning(attributeName + "." + elementDescriptor.getEntityIdAttributeName()) if (!elementIds.isEmpty() && !jpaProviderDeletesCollection) { DeleteCriteriaBuilder<?> cb = evm.getCriteriaBuilderFactory().deleteCollection(context.getEntityManager(), ownerEntityClass, "e", attributeName); cb.where(ownerIdAttributeName).eq(ownerId); cb.executeUpdate(); } else if (!jpaProviderDeletesCollection) { DeleteCriteriaBuilder<?> cb = evm.getCriteriaBuilderFactory().deleteCollection(context.getEntityManager(), ownerEntityClass, "e", attributeName); cb.where("e." + ownerIdAttributeName).eq(ownerId); cb.executeUpdate();
List<Object> elementIds; if (evm.getDbmsDialect().supportsReturningColumns()) { List<Tuple> tuples = evm.getCriteriaBuilderFactory().deleteCollection(context.getEntityManager(), ownerEntityClass, "e", attributeName) .where(ownerIdAttributeName).eq(ownerId) .executeWithReturning(attributeName + "." + elementIdAttributeName) if (!elementIds.isEmpty()) { DeleteCriteriaBuilder<?> cb = evm.getCriteriaBuilderFactory().deleteCollection(context.getEntityManager(), ownerEntityClass, "e", attributeName); cb.where(ownerIdAttributeName).eq(ownerId); cb.executeUpdate(); DeleteCriteriaBuilder<?> cb = evm.getCriteriaBuilderFactory().deleteCollection(context.getEntityManager(), ownerEntityClass, "e", attributeName); cb.where(ownerIdAttributeName).eq(ownerId); cb.executeUpdate();
List<Tuple> tuples = evm.getCriteriaBuilderFactory().deleteCollection(context.getEntityManager(), ownerEntityClass, "e", attributeName) .where(ownerIdAttributeName).eq(ownerId) .executeWithReturning(attributeName + "." + elementIdAttributeName) if (!elementIds.isEmpty()) { DeleteCriteriaBuilder<?> cb = evm.getCriteriaBuilderFactory().deleteCollection(context.getEntityManager(), ownerEntityClass, "e", attributeName); cb.where(ownerIdAttributeName).eq(ownerId); cb.executeUpdate(); DeleteCriteriaBuilder<?> cb = evm.getCriteriaBuilderFactory().deleteCollection(context.getEntityManager(), ownerEntityClass, "e", attributeName); cb.where(ownerIdAttributeName).eq(ownerId); cb.executeUpdate();
List<Tuple> tuples = evm.getCriteriaBuilderFactory().deleteCollection(context.getEntityManager(), ownerEntityClass, "e", mapping) .where(ownerIdAttributeName).eq(ownerId) .executeWithReturning(mapping + "." + elementDescriptor.getEntityIdAttributeName()) if (!elementIds.isEmpty() && !jpaProviderDeletesCollection) { DeleteCriteriaBuilder<?> cb = evm.getCriteriaBuilderFactory().deleteCollection(context.getEntityManager(), ownerEntityClass, "e", mapping); cb.where(ownerIdAttributeName).eq(ownerId); cb.executeUpdate(); DeleteCriteriaBuilder<?> cb = evm.getCriteriaBuilderFactory().deleteCollection(context.getEntityManager(), ownerEntityClass, "e", mapping); cb.where(ownerIdAttributeName).eq(ownerId); cb.executeUpdate();