/* * D.A.O. for JPA * Created on 17 d�c. 2012 ( Time 15:40:00 ) */ package org.demo.customer.dao; import java.util.ArrayList; import java.util.List; import javax.persistence.EntityManager; import javax.persistence.TypedQuery; import javax.persistence.criteria.CriteriaBuilder; import javax.persistence.criteria.CriteriaQuery; import javax.persistence.criteria.Predicate; import javax.persistence.criteria.Root; import org.telosys.starterkits.strutsjpa.CoreUtils; import org.telosys.starterkits.strutsjpa.GenericJpaDao; import org.demo.customer.bean.Customer; public class JpaCustomerDAO extends GenericJpaDao<Customer, String> { private static final Predicate[] ap = {}; /** * Constructs a DAO for Customer */ public JpaCustomerDAO() { super(Customer.class); } /** * Search by Customer example */ public List<Customer> search(final Customer element) { final EntityManager em = getEntityManager(); if ( element != null ) { CriteriaBuilder criteriaBuilder = em.getCriteriaBuilder(); CriteriaQuery<Customer> criteriaQuery = criteriaBuilder.createQuery(Customer.class); Root<Customer> from = criteriaQuery.from(Customer.class); List<Predicate> listP = new ArrayList<Predicate>(); if (CoreUtils.isNotBlank(element.getCode())) { Predicate predicate = criteriaBuilder.equal(from.get("code"), element.getCode()); listP.add(predicate); } if (CoreUtils.isNotBlank(element.getCountryCode())) { Predicate predicate = criteriaBuilder.equal(from.get("countryCode"), element.getCountryCode()); listP.add(predicate); } if (CoreUtils.isNotBlank(element.getFirstName())) { Predicate predicate = criteriaBuilder.equal(from.get("firstName"), element.getFirstName()); listP.add(predicate); } if (CoreUtils.isNotBlank(element.getLastName())) { Predicate predicate = criteriaBuilder.equal(from.get("lastName"), element.getLastName()); listP.add(predicate); } if (CoreUtils.isNotBlank(element.getLogin())) { Predicate predicate = criteriaBuilder.equal(from.get("login"), element.getLogin()); listP.add(predicate); } if (CoreUtils.isNotBlank(element.getPassword())) { Predicate predicate = criteriaBuilder.equal(from.get("password"), element.getPassword()); listP.add(predicate); } if (CoreUtils.isNotBlank(element.getAge())) { Predicate predicate = criteriaBuilder.equal(from.get("age"), element.getAge()); listP.add(predicate); } if (CoreUtils.isNotBlank(element.getCity())) { Predicate predicate = criteriaBuilder.equal(from.get("city"), element.getCity()); listP.add(predicate); } if (CoreUtils.isNotBlank(element.getZipCode())) { Predicate predicate = criteriaBuilder.equal(from.get("zipCode"), element.getZipCode()); listP.add(predicate); } if (CoreUtils.isNotBlank(element.getPhone())) { Predicate predicate = criteriaBuilder.equal(from.get("phone"), element.getPhone()); listP.add(predicate); } if (CoreUtils.isNotBlank(element.getReviewer())) { Predicate predicate = criteriaBuilder.equal(from.get("reviewer"), element.getReviewer()); listP.add(predicate); } criteriaQuery.where(listP.toArray(ap)); TypedQuery<Customer> tq = em.createQuery(criteriaQuery); return tq.getResultList(); } else { return this.loadAll(); } } }