
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