package com.thingtrack.konekti.dao.impl.internal; import java.util.List; import javax.persistence.Query; import com.thingtrack.konekti.dao.api.ApplicationDao; import com.thingtrack.konekti.dao.template.JpaDao; import com.thingtrack.konekti.domain.Application; import com.thingtrack.konekti.domain.User; public class ApplicationDaoImpl extends JpaDao<Application, Integer> implements ApplicationDao { @Override public Application getByName(String applicationType) throws Exception { Application application = (Application)getEntityManager() .createQuery("SELECT p FROM " + getEntityName() + " p WHERE p.applicationType = :applicationType") .setParameter("applicationType", Application.TYPE.Web).getSingleResult(); return application; } @Override public Application getByType(Application.TYPE applicationType) throws Exception { Application application = (Application)getEntityManager() .createQuery("SELECT p FROM " + getEntityName() + " p WHERE p.applicationType = :applicationType") .setParameter("applicationType", applicationType).getSingleResult(); return application; } @SuppressWarnings("unchecked") @Override public List<Application> getAll(User user) throws Exception { StringBuffer queryString = new StringBuffer("SELECT p FROM " + getEntityName() + " p"); if (user.getActiveOrganization() != null) queryString.append(" WHERE p.organization = :organization"); Query query = (Query) getEntityManager().createQuery(queryString.toString()); if (user.getActiveOrganization() != null) query.setParameter("organization", user.getActiveOrganization()); return query.getResultList(); } }