All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.parship.roperty.persistence.jpa.RopertyKeyDAO Maven / Gradle / Ivy

package com.parship.roperty.persistence.jpa;

import org.apache.commons.lang3.Validate;

import javax.persistence.EntityManager;
import javax.persistence.TypedQuery;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

public class RopertyKeyDAO {

    private QueryBuilderDelegate queryBuilderDelegate;

    RopertyKey loadRopertyKey(String key) {
        Validate.notNull(queryBuilderDelegate, "Query builder delegate must not be null");
        EntityManager entityManager = queryBuilderDelegate.createEntityManager();
        Validate.notNull(entityManager, "Entity manager must not be null");
        RopertyKey ropertyKey = entityManager.find(RopertyKey.class, key);
        entityManager.close();
        return ropertyKey;
    }

    List loadAllRopertyKeys() {
        Validate.notNull(queryBuilderDelegate, "Query builder delegate must not be null");
        EntityManager entityManager = queryBuilderDelegate.createEntityManager();
        Validate.notNull(entityManager, "Entity manager must not be null");
        TypedQuery typedQuery = queryBuilderDelegate.all();

        if (typedQuery == null) {
            entityManager.close();
            throw new RopertyPersistenceException("Typed query must not be null");
        }

        List ropertyKeys = typedQuery.getResultList();
        entityManager.close();
        return Collections.unmodifiableList(ropertyKeys);
    }

    public void setQueryBuilderDelegate(QueryBuilderDelegate queryBuilderDelegate) {
        Validate.notNull(queryBuilderDelegate, "Query builder delegate must not be null");
        this.queryBuilderDelegate = queryBuilderDelegate;
    }

    List findKeys(String substring) {
        Validate.notNull(queryBuilderDelegate, "Query builder delegate must not be null");
        EntityManager entityManager = queryBuilderDelegate.createEntityManager();
        Validate.notNull(entityManager, "Entity manager must not be null");

        LikeCriterion idCriterion = new LikeCriterion()
                .withAttributeName("id")
                .withExpression("%" + substring + "%");

        TypedQuery typedQuery = queryBuilderDelegate.likeliness(idCriterion);

        if (typedQuery == null) {
            entityManager.close();
            throw new RopertyPersistenceException("Typed query must not be null");
        }

        List ropertyKeys = typedQuery.getResultList();
        List result = new ArrayList<>(ropertyKeys.size());
        ropertyKeys.forEach((key) -> result.add(key.getId()));
        entityManager.close();
        return Collections.unmodifiableList(result);
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy