Package com.vst.dao.hibernate

Source Code of com.vst.dao.hibernate.ReasonDaoHibernate

package com.vst.dao.hibernate;

import java.util.ArrayList;
import java.util.List;

import com.vst.dao.ReasonDao;
import com.vst.dao.util.RefferenceUtil;
import com.vst.model.Reason;

public class ReasonDaoHibernate extends BaseDaoHibernate<Reason> implements ReasonDao {

    public boolean isUniqueReason(Reason reason){
        int count = super.getSession().createQuery("from Reason reason  where reason.constructionType.constructionTypeId=?  AND reason.defectZone.defectZoneId=? AND reason.defectType.defectTypeId=? AND reason.defectVarity.varityId=? AND reason.reasonName.reasonNameId=? AND reason.reasonId<>? ").setString(0, reason.getConstructionType().getConstructionTypeId().toString()).setString(1, reason.getDefectZone().getDefectZoneId().toString()).setString(2,reason.getDefectType().getDefectTypeId().toString()).setString(3,reason.getDefectVarity().getVarityId().toString()).setString(4,reason.getReasonName().getReasonNameId().toString()).setString(5,String.valueOf(reason.getReasonId())).list().size();
        return count == 0;
    }

    public List getReasonsByDefectTypeVarityConstructionZone(String defectTypeId, String defectVarityId, String constructionTypeId, String defectZoneId) {
        return getSession().createQuery("from Reason reason where reason.defectType.defectTypeId=? AND reason.defectVarity.varityId=? AND reason.constructionType.constructionTypeId=? AND reason.defectZone.defectZoneId=?").setString(0, defectTypeId).setString(1, defectVarityId).setString(2, constructionTypeId).setString(3, defectZoneId).list();
    }

    public boolean isReasonUsed(String reasonId) {
      Long count = (Long) super.getSession().createQuery("select count(*) from DefectType defectType inner join defectType.reasons as reasons where reasons.reasonId=?").setString(0, reasonId).uniqueResult();
      Long count1 = (Long) super.getSession().createQuery("select count(*) from ConstructionDefect constructionDefect  where constructionDefect.reason.reasonId=?").setString(0, reasonId).uniqueResult();
        if(count==null){
            count = new Long(0);
        }
        if(count1==null){
            count1 = new Long(0);
        }

        if (count.intValue()+count1.intValue() == 0) {
            return false;
        }
        return true;
    }


    public List getConnectedRefferences(final String reasonId){
        List defectTypeList =  super.getSession().createQuery("from DefectType defectType inner join defectType.reasons as reasons where reasons.reasonId=?").setString(0, reasonId).list();
        List constructionDefectList =  super.getSession().createQuery("from ConstructionDefect constructionDefect  where constructionDefect.reason.reasonId=?").setString(0, reasonId).list();
        List refferenceList=new ArrayList();
        RefferenceUtil.makeURL(refferenceList,"defectType",defectTypeList);
        RefferenceUtil.makeURL(refferenceList,"constructionDefect",constructionDefectList);
        return refferenceList;
    }

    public List getReasonsByConstructionVarityZone(String constructionTypeId, String varityId, String defectZoneId) {
        return super.getSession().createQuery("from Reason reason where reason.defectVarity.varityId=? AND reason.constructionType.constructionTypeId=? AND reason.defectZone.defectZoneId=?").setString(0, varityId).setString(1, constructionTypeId).setString(2, defectZoneId).list();

    }

    public List getOtherReasonsForConstrcutionsInObject(String typeId, String buildingObjectId) {
        return super.getSession().createQuery("select constructionDefect.otherReason from ConstructionDefect constructionDefect where (constructionDefect.reason is null) AND  (constructionDefect.exampleId in (select exampleId from ConstructionExample constructionExample where constructionExample.buildObjectId=? AND constructionExample.constructionType.constructionTypeId=?)) group by constructionDefect.otherReason").setString(0, buildingObjectId).setString(1, typeId).list();
    }

    public List getReasonsForConstrcutionsInObject(String typeId, String buildingObjectId) {
        return super.getSession().createQuery("select constructionDefect.reason from ConstructionDefect constructionDefect where (constructionDefect.reason is not null) AND  (constructionDefect.exampleId in (select exampleId from ConstructionExample constructionExample where constructionExample.buildObjectId=? AND constructionExample.constructionType.constructionTypeId=?)) group by constructionDefect.reason").setString(0, buildingObjectId).setString(1, typeId).list();
    }

    public List getReasonsByType(final String defectTypeId, final String defectVarityId, final String defectZoneId, final String constructionTypeId) {
//        DefectType defectType = (DefectType) super.getObject(DefectType.class, defectTypeId);
//        return defectType.getReasons();
      List rlist = new ArrayList();
      rlist = super.getSession().createQuery("from Reason res   where res.defectType.defectTypeId=? AND res.defectVarity.varityId=? AND res.defectZone.defectZoneId=? AND res.constructionType.constructionTypeId=?").setString(0, defectTypeId).setString(1, defectVarityId).setString(2, defectZoneId).setString(3, constructionTypeId).list();
      System.out.println(rlist);
      return rlist;

    }





    /**
     * @see com.vst.dao.ReasonDao#getReasons(com.vst.model.Reason)
     */
    public List getReasons(final Reason reason) {
        return getHibernateTemplate().find("from Reason");

        /* Remove the line above and uncomment this code block if you want
           to use Hibernate's Query by Example API.
        if (reason == null) {
            return getHibernateTemplate().find("from Reason");
        } else {
            // filter on properties set in the reason
            HibernateCallback callback = new HibernateCallback() {
                public Object doInHibernate(Session session) throws HibernateException {
                    Example ex = Example.create(reason).ignoreCase().enableLike(MatchMode.ANYWHERE);
                    return session.createCriteria(Reason.class).add(ex).list();
                }
            };
            return (List) getHibernateTemplate().execute(callback);
        }*/
    }

    /**
     * @see com.vst.dao.ReasonDao#getReason(Integer reasonId)
     */
    public Reason getReason(final Integer reasonId) {
        Reason reason = (Reason) getObject(reasonId);
        return reason;
    }

    /**
     * @see com.vst.dao.ReasonDao#saveReason(Reason reason)
     */
    public void saveReason(final Reason reason) {
        saveObject(reason);
    }

    /**
     * @see com.vst.dao.ReasonDao#removeReason(Integer reasonId)
     */
    public void removeReason(final Integer reasonId) {
        removeObject(reasonId);
    }

  @Override
  Class<Reason> getServiceClass() {
    return Reason.class;
  }
}
TOP

Related Classes of com.vst.dao.hibernate.ReasonDaoHibernate

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.