package fi.otavanopisto.muikku.dao.users; import java.util.List; import javax.persistence.EntityManager; import javax.persistence.criteria.CriteriaBuilder; import javax.persistence.criteria.CriteriaQuery; import javax.persistence.criteria.Root; import fi.otavanopisto.muikku.model.users.RoleSchoolDataIdentifier_; import fi.otavanopisto.muikku.dao.CoreDAO; import fi.otavanopisto.muikku.model.base.SchoolDataSource; import fi.otavanopisto.muikku.model.users.RoleEntity; import fi.otavanopisto.muikku.model.users.RoleSchoolDataIdentifier; public class RoleSchoolDataIdentifierDAO extends CoreDAO<RoleSchoolDataIdentifier> { private static final long serialVersionUID = 6254699844092885890L; public RoleSchoolDataIdentifier create(SchoolDataSource dataSource, String identifier, RoleEntity roleEntity) { RoleSchoolDataIdentifier roleSchoolDataIdentifier = new RoleSchoolDataIdentifier(); roleSchoolDataIdentifier.setDataSource(dataSource); roleSchoolDataIdentifier.setIdentifier(identifier); roleSchoolDataIdentifier.setRoleEntity(roleEntity); return persist(roleSchoolDataIdentifier); } public RoleSchoolDataIdentifier findByDataSourceAndIdentifier(SchoolDataSource dataSource, String identifier) { EntityManager entityManager = getEntityManager(); CriteriaBuilder criteriaBuilder = entityManager.getCriteriaBuilder(); CriteriaQuery<RoleSchoolDataIdentifier> criteria = criteriaBuilder.createQuery(RoleSchoolDataIdentifier.class); Root<RoleSchoolDataIdentifier> root = criteria.from(RoleSchoolDataIdentifier.class); criteria.select(root); criteria.where( criteriaBuilder.and( criteriaBuilder.equal(root.get(RoleSchoolDataIdentifier_.dataSource), dataSource), criteriaBuilder.equal(root.get(RoleSchoolDataIdentifier_.identifier), identifier) ) ); return getSingleResult(entityManager.createQuery(criteria)); } public RoleSchoolDataIdentifier findByDataSourceAndRoleEntity(SchoolDataSource dataSource, RoleEntity roleEntity) { EntityManager entityManager = getEntityManager(); CriteriaBuilder criteriaBuilder = entityManager.getCriteriaBuilder(); CriteriaQuery<RoleSchoolDataIdentifier> criteria = criteriaBuilder.createQuery(RoleSchoolDataIdentifier.class); Root<RoleSchoolDataIdentifier> root = criteria.from(RoleSchoolDataIdentifier.class); criteria.select(root); criteria.where( criteriaBuilder.and( criteriaBuilder.equal(root.get(RoleSchoolDataIdentifier_.dataSource), dataSource), criteriaBuilder.equal(root.get(RoleSchoolDataIdentifier_.roleEntity), roleEntity) ) ); return getSingleResult(entityManager.createQuery(criteria)); } public List<RoleSchoolDataIdentifier> listByRoleEntity(RoleEntity roleEntity) { EntityManager entityManager = getEntityManager(); CriteriaBuilder criteriaBuilder = entityManager.getCriteriaBuilder(); CriteriaQuery<RoleSchoolDataIdentifier> criteria = criteriaBuilder.createQuery(RoleSchoolDataIdentifier.class); Root<RoleSchoolDataIdentifier> root = criteria.from(RoleSchoolDataIdentifier.class); criteria.select(root); criteria.where( criteriaBuilder.equal(root.get(RoleSchoolDataIdentifier_.roleEntity), roleEntity) ); return entityManager.createQuery(criteria).getResultList(); } public List<RoleSchoolDataIdentifier> listByDataSource(SchoolDataSource schoolDataSource) { EntityManager entityManager = getEntityManager(); CriteriaBuilder criteriaBuilder = entityManager.getCriteriaBuilder(); CriteriaQuery<RoleSchoolDataIdentifier> criteria = criteriaBuilder.createQuery(RoleSchoolDataIdentifier.class); Root<RoleSchoolDataIdentifier> root = criteria.from(RoleSchoolDataIdentifier.class); criteria.select(root); criteria.where( criteriaBuilder.equal(root.get(RoleSchoolDataIdentifier_.dataSource), schoolDataSource) ); return entityManager.createQuery(criteria).getResultList(); } public RoleSchoolDataIdentifier updateRoleEntity(RoleSchoolDataIdentifier roleSchoolDataIdentifier, RoleEntity roleEntity) { roleSchoolDataIdentifier.setRoleEntity(roleEntity); return persist(roleSchoolDataIdentifier); } @Override public void delete(RoleSchoolDataIdentifier roleSchoolDataIdentifier) { super.delete(roleSchoolDataIdentifier); } }