Search in sources :

Example 1 with JpaQueryParameters

use of org.hisp.dhis.hibernate.JpaQueryParameters in project dhis2-core by dhis2.

the class HibernateEventVisualizationStore method getEventVisualizationsLikeName.

private List<EventVisualization> getEventVisualizationsLikeName(final Set<String> words, final int first, final int max, final EventVisualizationSet eventVisualizationSet) {
    final CriteriaBuilder builder = getCriteriaBuilder();
    final JpaQueryParameters<EventVisualization> params = new JpaQueryParameters<EventVisualization>().addPredicates(getSharingPredicates(builder)).addOrder(root -> builder.asc(root.get("name"))).setFirstResult(first).setMaxResults(max);
    if (words.isEmpty()) {
        return getList(builder, params);
    }
    final List<Function<Root<EventVisualization>, Predicate>> conjunction = new ArrayList<>(1);
    for (final String word : words) {
        conjunction.add(root -> builder.like(builder.lower(root.get("name")), "%" + word.toLowerCase() + "%"));
    }
    params.addPredicate(root -> builder.and(conjunction.stream().map(p -> p.apply(root)).collect(Collectors.toList()).toArray(new Predicate[0])));
    setCorrectPredicates(eventVisualizationSet, builder, params);
    return getList(builder, params);
}
Also used : CriteriaBuilder(javax.persistence.criteria.CriteriaBuilder) Function(java.util.function.Function) ArrayList(java.util.ArrayList) EventVisualization(org.hisp.dhis.eventvisualization.EventVisualization) JpaQueryParameters(org.hisp.dhis.hibernate.JpaQueryParameters)

Example 2 with JpaQueryParameters

use of org.hisp.dhis.hibernate.JpaQueryParameters in project dhis2-core by dhis2.

the class HibernateEventVisualizationStore method getEventVisualizations.

private List<EventVisualization> getEventVisualizations(final int first, final int max, final EventVisualizationSet eventVisualizationSet) {
    final CriteriaBuilder builder = getCriteriaBuilder();
    final JpaQueryParameters<EventVisualization> params = new JpaQueryParameters<EventVisualization>().addPredicates(getSharingPredicates(builder)).addOrder(root -> builder.asc(root.get("name"))).setFirstResult(first).setMaxResults(max);
    setCorrectPredicates(eventVisualizationSet, builder, params);
    return getList(builder, params);
}
Also used : CriteriaBuilder(javax.persistence.criteria.CriteriaBuilder) EventVisualization(org.hisp.dhis.eventvisualization.EventVisualization) JpaQueryParameters(org.hisp.dhis.hibernate.JpaQueryParameters)

Example 3 with JpaQueryParameters

use of org.hisp.dhis.hibernate.JpaQueryParameters in project dhis2-core by dhis2.

the class HibernateIdentifiableObjectStore method getAllGeCreated.

@Override
public List<T> getAllGeCreated(Date created) {
    CriteriaBuilder builder = getCriteriaBuilder();
    JpaQueryParameters<T> param = new JpaQueryParameters<T>().addPredicates(getSharingPredicates(builder)).addPredicate(root -> builder.greaterThanOrEqualTo(root.get("created"), created)).addOrder(root -> builder.desc(root.get("created")));
    return getList(builder, param);
}
Also used : CriteriaBuilder(javax.persistence.criteria.CriteriaBuilder) HibernateGenericStore(org.hisp.dhis.hibernate.HibernateGenericStore) CurrentUserGroupInfo(org.hisp.dhis.user.CurrentUserGroupInfo) Date(java.util.Date) CreateAccessDeniedException(org.hisp.dhis.hibernate.exception.CreateAccessDeniedException) JsonbFunctions(org.hisp.dhis.hibernate.jsonb.type.JsonbFunctions) Function(java.util.function.Function) TypedQuery(javax.persistence.TypedQuery) StringUtils(org.apache.commons.lang3.StringUtils) Attribute(org.hisp.dhis.attribute.Attribute) ArrayList(java.util.ArrayList) JdbcTemplate(org.springframework.jdbc.core.JdbcTemplate) Lists(com.google.common.collect.Lists) Predicate(javax.persistence.criteria.Predicate) UpdateAccessDeniedException(org.hisp.dhis.hibernate.exception.UpdateAccessDeniedException) CurrentUserServiceTarget(org.hisp.dhis.user.CurrentUserServiceTarget) ObjectUtils(org.apache.commons.lang3.ObjectUtils) CriteriaBuilder(javax.persistence.criteria.CriteriaBuilder) ApplicationEventPublisher(org.springframework.context.ApplicationEventPublisher) User(org.hisp.dhis.user.User) InternalHibernateGenericStore(org.hisp.dhis.hibernate.InternalHibernateGenericStore) Root(javax.persistence.criteria.Root) AuditLogUtil(org.hisp.dhis.common.AuditLogUtil) ReadAccessDeniedException(org.hisp.dhis.hibernate.exception.ReadAccessDeniedException) IdentifiableObject(org.hisp.dhis.common.IdentifiableObject) CriteriaQuery(javax.persistence.criteria.CriteriaQuery) HibernateProxyUtils(org.hisp.dhis.hibernate.HibernateProxyUtils) AccessStringHelper(org.hisp.dhis.security.acl.AccessStringHelper) BaseIdentifiableObject(org.hisp.dhis.common.BaseIdentifiableObject) DeleteAccessDeniedException(org.hisp.dhis.hibernate.exception.DeleteAccessDeniedException) Collection(java.util.Collection) JpaQueryUtils(org.hisp.dhis.query.JpaQueryUtils) Preconditions.checkNotNull(com.google.common.base.Preconditions.checkNotNull) SessionFactory(org.hibernate.SessionFactory) Set(java.util.Set) JpaQueryParameters(org.hisp.dhis.hibernate.JpaQueryParameters) Collectors(java.util.stream.Collectors) Dashboard(org.hisp.dhis.dashboard.Dashboard) List(java.util.List) Slf4j(lombok.extern.slf4j.Slf4j) CurrentUserService(org.hisp.dhis.user.CurrentUserService) AclService(org.hisp.dhis.security.acl.AclService) GenericDimensionalObjectStore(org.hisp.dhis.common.GenericDimensionalObjectStore) SharingUtils(org.hisp.dhis.util.SharingUtils)

Example 4 with JpaQueryParameters

use of org.hisp.dhis.hibernate.JpaQueryParameters in project dhis2-core by dhis2.

the class HibernateIdentifiableObjectStore method getCount.

@Override
public int getCount() {
    CriteriaBuilder builder = getCriteriaBuilder();
    JpaQueryParameters<T> param = new JpaQueryParameters<T>().addPredicates(getSharingPredicates(builder)).count(root -> builder.countDistinct(root.get("id")));
    return getCount(builder, param).intValue();
}
Also used : CriteriaBuilder(javax.persistence.criteria.CriteriaBuilder) JpaQueryParameters(org.hisp.dhis.hibernate.JpaQueryParameters)

Example 5 with JpaQueryParameters

use of org.hisp.dhis.hibernate.JpaQueryParameters in project dhis2-core by dhis2.

the class HibernateIdentifiableObjectStore method getByName.

@Override
public List<T> getByName(Collection<String> names) {
    if (names == null || names.isEmpty()) {
        return new ArrayList<>();
    }
    CriteriaBuilder builder = getCriteriaBuilder();
    JpaQueryParameters<T> jpaQueryParameters = new JpaQueryParameters<T>().addPredicates(getSharingPredicates(builder)).addPredicate(root -> root.get("name").in(names));
    return getList(builder, jpaQueryParameters);
}
Also used : CriteriaBuilder(javax.persistence.criteria.CriteriaBuilder) ArrayList(java.util.ArrayList) JpaQueryParameters(org.hisp.dhis.hibernate.JpaQueryParameters)

Aggregations

CriteriaBuilder (javax.persistence.criteria.CriteriaBuilder)30 JpaQueryParameters (org.hisp.dhis.hibernate.JpaQueryParameters)30 ArrayList (java.util.ArrayList)18 Function (java.util.function.Function)13 List (java.util.List)10 Date (java.util.Date)9 Set (java.util.Set)9 Collectors (java.util.stream.Collectors)9 Predicate (javax.persistence.criteria.Predicate)9 Root (javax.persistence.criteria.Root)9 SessionFactory (org.hibernate.SessionFactory)9 ReadAccessDeniedException (org.hisp.dhis.hibernate.exception.ReadAccessDeniedException)9 AclService (org.hisp.dhis.security.acl.AclService)9 CurrentUserService (org.hisp.dhis.user.CurrentUserService)9 Preconditions.checkNotNull (com.google.common.base.Preconditions.checkNotNull)8 Lists (com.google.common.collect.Lists)8 Collection (java.util.Collection)8 TypedQuery (javax.persistence.TypedQuery)8 CriteriaQuery (javax.persistence.criteria.CriteriaQuery)8 Slf4j (lombok.extern.slf4j.Slf4j)8