Search in sources :

Example 26 with JpaQueryParameters

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

the class HibernateIdentifiableObjectStore method getAllLeCreated.

@Override
public List<T> getAllLeCreated(Date created) {
    CriteriaBuilder builder = getCriteriaBuilder();
    JpaQueryParameters<T> param = new JpaQueryParameters<T>().addPredicates(getSharingPredicates(builder)).addPredicate(root -> builder.lessThanOrEqualTo(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 27 with JpaQueryParameters

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

the class HibernateIdentifiableObjectStore method getByUniqueAttributeValue.

@Override
public T getByUniqueAttributeValue(Attribute attribute, String value, User user) {
    if (attribute == null || StringUtils.isEmpty(value) || !attribute.isUnique()) {
        return null;
    }
    CriteriaBuilder builder = getCriteriaBuilder();
    JpaQueryParameters<T> param = new JpaQueryParameters<T>().addPredicates(getSharingPredicates(builder, user)).addPredicate(root -> builder.equal(builder.function(FUNCTION_JSONB_EXTRACT_PATH_TEXT, String.class, root.get("attributeValues"), builder.literal(attribute.getUid()), builder.literal("value")), value));
    return getSingleResult(builder, param);
}
Also used : CriteriaBuilder(javax.persistence.criteria.CriteriaBuilder) JpaQueryParameters(org.hisp.dhis.hibernate.JpaQueryParameters)

Example 28 with JpaQueryParameters

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

the class HibernateIdentifiableObjectStore method getByUid.

@Override
public List<T> getByUid(Collection<String> uids) {
    if (uids == null || uids.isEmpty()) {
        return new ArrayList<>();
    }
    // TODO Include paging to avoid exceeding max query length
    CriteriaBuilder builder = getCriteriaBuilder();
    List<List<String>> uidPartitions = Lists.partition(new ArrayList<>(uids), 20000);
    List<Function<Root<T>, Predicate>> sharingPredicates = getSharingPredicates(builder);
    List<T> returnList = new ArrayList<>();
    for (List<String> partition : uidPartitions) {
        JpaQueryParameters<T> jpaQueryParameters = new JpaQueryParameters<T>().addPredicates(sharingPredicates).addPredicate(root -> root.get("uid").in(partition));
        returnList.addAll(getList(builder, jpaQueryParameters));
    }
    return returnList;
}
Also used : CriteriaBuilder(javax.persistence.criteria.CriteriaBuilder) ArrayList(java.util.ArrayList) JpaQueryParameters(org.hisp.dhis.hibernate.JpaQueryParameters) Function(java.util.function.Function) ArrayList(java.util.ArrayList) List(java.util.List)

Example 29 with JpaQueryParameters

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

the class HibernateEventVisualizationStore method countEventVisualizationCreated.

private int countEventVisualizationCreated(final Date startingAt, final EventVisualizationSet eventVisualizationSet) {
    final CriteriaBuilder builder = getCriteriaBuilder();
    final JpaQueryParameters<EventVisualization> params = new JpaQueryParameters<EventVisualization>().addPredicates(getSharingPredicates(builder)).addPredicate(root -> builder.greaterThanOrEqualTo(root.get("created"), startingAt)).count(root -> builder.countDistinct(root.get("id")));
    setCorrectPredicates(eventVisualizationSet, builder, params);
    return getCount(builder, params).intValue();
}
Also used : CriteriaBuilder(javax.persistence.criteria.CriteriaBuilder) LINE_LIST(org.hisp.dhis.eventvisualization.EventVisualizationType.LINE_LIST) Date(java.util.Date) SessionFactory(org.hibernate.SessionFactory) Set(java.util.Set) JpaQueryParameters(org.hisp.dhis.hibernate.JpaQueryParameters) Function(java.util.function.Function) Collectors(java.util.stream.Collectors) EventVisualization(org.hisp.dhis.eventvisualization.EventVisualization) HibernateAnalyticalObjectStore(org.hisp.dhis.common.hibernate.HibernateAnalyticalObjectStore) ArrayList(java.util.ArrayList) JdbcTemplate(org.springframework.jdbc.core.JdbcTemplate) EventVisualizationStore(org.hisp.dhis.eventvisualization.EventVisualizationStore) List(java.util.List) Predicate(javax.persistence.criteria.Predicate) CurrentUserService(org.hisp.dhis.user.CurrentUserService) PIVOT_TABLE(org.hisp.dhis.eventvisualization.EventVisualizationType.PIVOT_TABLE) CriteriaBuilder(javax.persistence.criteria.CriteriaBuilder) AclService(org.hisp.dhis.security.acl.AclService) ApplicationEventPublisher(org.springframework.context.ApplicationEventPublisher) Repository(org.springframework.stereotype.Repository) Root(javax.persistence.criteria.Root) EventVisualization(org.hisp.dhis.eventvisualization.EventVisualization)

Example 30 with JpaQueryParameters

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

the class HibernateDataElementStore method getDataElement.

@Override
public DataElement getDataElement(String uid, User user) {
    CriteriaBuilder builder = getCriteriaBuilder();
    JpaQueryParameters<DataElement> param = new JpaQueryParameters<DataElement>().addPredicates(getSharingPredicates(builder, user, AclService.LIKE_READ_METADATA)).addPredicate(root -> builder.equal(root.get("uid"), uid));
    return getSingleResult(builder, param);
}
Also used : CriteriaBuilder(javax.persistence.criteria.CriteriaBuilder) DataElement(org.hisp.dhis.dataelement.DataElement) 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