/** * Copyright (c)2010-2011 Enterprise Website Content Management System(EWCMS), All rights reserved. * EWCMS PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. * http://www.ewcms.com */ package com.ewcms.plugin.vote.manager.dao; import javax.persistence.NoResultException; import javax.persistence.TypedQuery; import org.springframework.stereotype.Repository; import com.ewcms.common.dao.JpaDAO; import com.ewcms.plugin.vote.model.Subject; import com.ewcms.plugin.vote.model.SubjectItem; /** * 问卷调查主题明细DAO * * @author 吴智俊 */ @Repository public class SubjectItemDAO extends JpaDAO<Long, SubjectItem> { public Long findSubjectItemMaxSort(final Long subjectId){ String hql = "Select Max(i.sort) FROM Subject As s Right Join s.subjectItems As i Where s.id=:subjectId"; TypedQuery<Long> query = this.getEntityManager().createQuery(hql, Long.class); query.setParameter("subjectId", subjectId); Long maxSort = 0L; try{ maxSort = (Long) query.getSingleResult(); }catch(NoResultException e){ } if (maxSort == null){ maxSort = 0L; } return maxSort; } public SubjectItem findSubjectItemBySubjectAndInputStatus(final Long subjectId){ String hql = "Select i From Subject As s Right Join s.subjectItems As i Where s.id=:subjectId And s.status=:status"; TypedQuery<SubjectItem> query = this.getEntityManager().createQuery(hql, SubjectItem.class); query.setParameter("subjectId", subjectId); query.setParameter("status", Subject.Status.INPUT); SubjectItem subjectItem = null; try{ subjectItem = (SubjectItem) query.getSingleResult(); }catch(NoResultException e){ } return subjectItem; } public SubjectItem findSubjectItemBySort(final Long subjectId, final Long sort){ String hql = "Select i From Subject As s Right Join s.subjectItems As i Where s.id=:subjectId And i.sort=:sort"; TypedQuery<SubjectItem> query = this.getEntityManager().createQuery(hql, SubjectItem.class); query.setParameter("subjectId", subjectId); query.setParameter("sort", sort); SubjectItem subjectItem = null; try{ subjectItem = (SubjectItem) query.getSingleResult(); }catch(NoResultException e){ } return subjectItem; } }