@Override public CriteriaBuilder<T> createCriteriaBuilder(EntityManager entityManager) { CriteriaBuilder<T> cb = criteriaBuilder.getCriteriaBuilderFactory().create(entityManager, returnType); return query.render(cb); }
public BlazeCriteriaBuilderImpl(CriteriaBuilderFactory cbf) { this.metamodel = cbf.getService(EntityMetamodel.class); this.cbf = cbf; }
@Override public void removeById(UpdateContext context, Object id) { UpdateCriteriaBuilder<?> updateCb = context.getEntityViewManager().getCriteriaBuilderFactory().update(context.getEntityManager(), ownerEntityClass, "e"); for (Map.Entry<String, String> entry : removeByIdMappings.entrySet()) { updateCb.setExpression(entry.getKey(), "NULL"); updateCb.where(entry.getValue()).eq(id); } updateCb.executeUpdate(); }
private String createQueryString(EntityViewManagerImpl evm, EntityType<?> entityType, Map<String, Map<?, ?>> fetchGraph) { CriteriaBuilderFactory cbf = evm.getCriteriaBuilderFactory(); EntityManagerFactory emf = cbf.getService(EntityManagerFactory.class); EntityManager em = emf.createEntityManager(); try { String[] paths = flatten(fetchGraph); if (paths.length == 0) { return null; } else { return cbf.create(em, entityClass) .fetch(paths) .where(JpaMetamodelUtils.getSingleIdAttribute(entityType).getName()).eqExpression(":id") .getQueryString(); } } finally { em.close(); } }
DeleteCriteriaBuilder<?> cb = evm.getCriteriaBuilderFactory().delete(context.getEntityManager(), elementEntityClass); if (id == null) { cb.where(ownerIdAttributeName).eq(ownerId); } else { CriteriaBuilder<Object[]> cb = evm.getCriteriaBuilderFactory().create(context.getEntityManager(), Object[].class); cb.from(elementEntityClass); if (id == null) {
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)); }
public EntityViewManagerImpl(EntityViewConfigurationImpl config, CriteriaBuilderFactory cbf) { this.cbf = cbf; this.jpaProvider = cbf.getService(JpaProvider.class); this.dbmsDialect = cbf.getService(DbmsDialect.class); EntityMetamodel entityMetamodel = cbf.getService(EntityMetamodel.class); this.expressionFactory = cbf.getService(ExpressionFactory.class); this.packageOpener = cbf.getService(PackageOpener.class); this.entityIdAccessor = new EntityIdAttributeAccessor(jpaProvider); this.unsafeDisabled = !Boolean.valueOf(String.valueOf(config.getProperty(ConfigurationProperties.PROXY_UNSAFE_ALLOWED))); entityMetamodel, jpaProvider, cbf.getRegisteredFunctions(), expressionFactory, proxyFactory,
@Override public DeleteCriteriaBuilder<T> createCriteriaBuilder(EntityManager entityManager) { RenderContextImpl context = new RenderContextImpl(); @SuppressWarnings("unchecked") DeleteCriteriaBuilder<T> deleteCriteriaBuilder = criteriaBuilder.getCriteriaBuilderFactory() .delete(entityManager, (Class<T>) getRoot().getJavaType(), getRoot().getAlias()); renderWhere(deleteCriteriaBuilder, context); for (ImplicitParameterBinding b : context.getImplicitParameterBindings()) { b.bind(deleteCriteriaBuilder); } for (Map.Entry<String, ParameterExpression<?>> entry : context.getExplicitParameterNameMapping().entrySet()) { deleteCriteriaBuilder.setParameterType(entry.getKey(), entry.getValue().getParameterType()); } return deleteCriteriaBuilder; } }
private String createQueryString(EntityViewManagerImpl evm, ManagedViewType<?> subviewType) { EntityMetamodel entityMetamodel = evm.getMetamodel().getEntityMetamodel(); EntityType<?> entityType = entityMetamodel.getEntity(entityClass); // We can't query embeddables if (entityType == null) { return null; } Set<String> fetchJoinableRelations = new HashSet<>(subviewType.getAttributes().size()); addFetchJoinableRelations(fetchJoinableRelations, "", subviewType); CriteriaBuilderFactory cbf = evm.getCriteriaBuilderFactory(); EntityManagerFactory emf = cbf.getService(EntityManagerFactory.class); EntityManager em = emf.createEntityManager(); try { if (fetchJoinableRelations.isEmpty()) { return null; } else { return cbf.create(em, entityClass) .fetch(fetchJoinableRelations.toArray(new String[fetchJoinableRelations.size()])) .where(JpaMetamodelUtils.getSingleIdAttribute(entityType).getName()).eqExpression(":id") .getQueryString(); } } finally { em.close(); } }
DeleteCriteriaBuilder<?> cb = context.getEntityViewManager().getCriteriaBuilderFactory().delete(context.getEntityManager(), entityClass); cb.where(idFlusher.getMapping()).eq(entityId); if (version != null && versionFlusher != null) { } else { CriteriaBuilder<Object[]> cb = context.getEntityViewManager().getCriteriaBuilderFactory().create(context.getEntityManager(), Object[].class); cb.from(entityClass); cb.where(idFlusher.getMapping()).eq(entityId);
@Override public DeleteCriteriaBuilder<T> createCriteriaBuilder(EntityManager entityManager) { RenderContextImpl context = new RenderContextImpl(); @SuppressWarnings("unchecked") DeleteCriteriaBuilder<T> deleteCriteriaBuilder = criteriaBuilder.getCriteriaBuilderFactory() .delete(entityManager, (Class<T>) getRoot().getJavaType(), getRoot().getAlias()); renderWhere(deleteCriteriaBuilder, context); for (ImplicitParameterBinding b : context.getImplicitParameterBindings()) { b.bind(deleteCriteriaBuilder); } for (Map.Entry<String, ParameterExpression<?>> entry : context.getExplicitParameterNameMapping().entrySet()) { deleteCriteriaBuilder.setParameterType(entry.getKey(), entry.getValue().getParameterType()); } return deleteCriteriaBuilder; } }
@Override public <T> List<T> findAll(EntityViewSetting<T, ? extends QueryBuilder<T,?>> setting) { CriteriaBuilder<Account> cb = cbf.create(em, Account.class); return evm.applySetting(setting, cb).getResultList(); }
public BlazeCriteriaBuilderImpl(CriteriaBuilderFactory cbf) { this.metamodel = cbf.getService(EntityMetamodel.class); this.cbf = cbf; }
@Override public void removeByOwnerId(UpdateContext context, Object ownerId) { UpdateCriteriaBuilder<?> updateCb = context.getEntityViewManager().getCriteriaBuilderFactory().update(context.getEntityManager(), ownerEntityClass, "e"); for (Map.Entry<String, String> entry : removeByOwnerIdMappings.entrySet()) { updateCb.setExpression(entry.getKey(), "NULL"); updateCb.where(entry.getValue()).eq(ownerId); } updateCb.executeUpdate(); }
@Override public <T> List<T> findAll(EntityViewSetting<T, ? extends QueryBuilder<T,?>> setting) { CriteriaBuilder<Account> cb = cbf.create(em, Account.class); return evm.applySetting(setting, cb).getResultList(); }
protected String groupByPathExpressions(String groupByExpression, String... pathExpressions) { if (cbf.getService(DbmsDialect.class).supportsGroupByExpressionInHavingMatching()) { return groupByExpression; } Set<String> distinctGroupBys = new LinkedHashSet<String>(); distinctGroupBys.addAll(Arrays.asList(pathExpressions)); return StringUtils.join(", ", distinctGroupBys); }
@SuppressWarnings("unchecked") UpdateCriteriaBuilder<T> updateCriteriaBuilder = criteriaBuilder.getCriteriaBuilderFactory() .update(entityManager, (Class<T>) getRoot().getJavaType(), getRoot().getAlias());
@Override public CriteriaBuilder<T> createCriteriaBuilder(EntityManager entityManager) { CriteriaBuilder<T> cb = criteriaBuilder.getCriteriaBuilderFactory().create(entityManager, returnType); return query.render(cb); }
protected String groupByPathExpressions(String groupByExpression, String... pathExpressions) { if (cbf.getService(DbmsDialect.class).supportsGroupByExpressionInHavingMatching()) { return groupByExpression; } Set<String> distinctGroupBys = new LinkedHashSet<String>(); distinctGroupBys.addAll(Arrays.asList(pathExpressions)); return StringUtils.join(", ", distinctGroupBys); }
@SuppressWarnings("unchecked") UpdateCriteriaBuilder<T> updateCriteriaBuilder = criteriaBuilder.getCriteriaBuilderFactory() .update(entityManager, (Class<T>) getRoot().getJavaType(), getRoot().getAlias());