Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.beetlehand.model.dao;
- import com.beetlehand.model.AttributeEntity;
- import org.apache.commons.lang3.StringUtils;
- import javax.persistence.*;
- import java.util.ArrayList;
- import java.util.List;
- import java.util.Map;
- public class AttributeDao extends AbstractDao<AttributeEntity, Integer> {
- public AttributeEntity getById(Integer id) {
- if(id == null) return null;
- return getEntityManager().find(AttributeEntity.class, id);
- }
- public AttributeEntity getOneBy(Map<String, Object> params) {
- List<String> whereClause = new ArrayList<>();
- for(String key :params.keySet()) {
- whereClause.add(" " + key + " =:" + key + " ");
- }
- StringBuilder queryBuilder = new StringBuilder();
- queryBuilder.append("SELECT a FROM AttributeEntity a");
- queryBuilder.append(" WHERE " + StringUtils.join(whereClause.toArray(), " AND "));
- TypedQuery<AttributeEntity> jpaQuery =
- getEntityManager().createQuery(queryBuilder.toString(), AttributeEntity.class);
- for(String key :params.keySet()) {
- jpaQuery.setParameter(key, params.get(key));
- }
- return jpaQuery.getSingleResult();
- }
- public List<AttributeEntity> getBy(String predicates, Map<String, Object> params) {
- return this.getBy(predicates, params, "attribute_id", 1000, 0);
- }
- public List<AttributeEntity> getBy(String predicates, Map<String, Object> params, String orderBy) {
- return this.getBy(predicates, params, orderBy, 1000, 0);
- }
- public List<AttributeEntity> getBy(String predicates, Map<String, Object> params, String orderBy
- , Integer limit) {
- return this.getBy(predicates, params, orderBy, limit, 0);
- }
- public List<AttributeEntity> getBy(String predicates, Map<String, Object> params, String orderBy
- , Integer limit, Integer offset) {
- StringBuilder queryBuilder = new StringBuilder();
- queryBuilder.append("SELECT a FROM AttributeEntity a");
- queryBuilder.append(" WHERE " + predicates);
- if(orderBy != null)
- queryBuilder.append(" ORDER BY " + orderBy);
- TypedQuery<AttributeEntity> jpaQuery =
- getEntityManager().createQuery(queryBuilder.toString(), AttributeEntity.class);
- if(limit != null)
- jpaQuery.setMaxResults(limit);
- if(offset != null)
- jpaQuery.setFirstResult(offset);
- for(String key :params.keySet()) {
- jpaQuery.setParameter(key, params.get(key));
- }
- return jpaQuery.getResultList();
- }
- public Long count() {
- return this.countBy(null, null);
- }
- public Long countBy(String predicates, Map<String, Object> params) {
- StringBuilder queryBuilder = new StringBuilder();
- queryBuilder.append("SELECT COUNT(a) FROM AttributeEntity a");
- if(predicates != null)
- queryBuilder.append(" WHERE " + predicates);
- TypedQuery<Long> jpaQuery =
- getEntityManager().createQuery(queryBuilder.toString(), Long.class);
- if(params != null)
- for (String key : params.keySet()) {
- jpaQuery.setParameter(key, params.get(key));
- }
- return jpaQuery.getSingleResult().longValue();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement