Example usage for org.hibernate.criterion DetachedCriteria forClass

List of usage examples for org.hibernate.criterion DetachedCriteria forClass

Introduction

In this page you can find the example usage for org.hibernate.criterion DetachedCriteria forClass.

Prototype

public static DetachedCriteria forClass(Class clazz, String alias) 

Source Link

Document

Static builder to create a DetachedCriteria for the given entity, by its Class.

Usage

From source file:com.apress.progwt.server.dao.hibernate.SchoolDAOHibernateImpl.java

License:Apache License

/**
 * /*from   w w w .  j  a  v a 2s .c  o m*/
 * Posts that are threads will have their threadPost field == null.
 * 
 * Could try to optimize by getting close to: SELECT f.id,
 * f.thread_id, count(s.id) FROM `forumposts` f left JOIN forumposts s
 * on f.id = s.thread_id WHERE f.thread_id IS NULL group by f.id
 * 
 * @param topicName
 * 
 */
public PostsList getThreads(Class<? extends ForumPost> forumClass, String topicName, long topicID, int start,
        int max) {

    System.out.println("start " + start + " max " + max);

    DetachedCriteria crit = DetachedCriteria.forClass(forumClass, "fp")
            .add(Expression.and(Expression.eq(topicName, topicID), Expression.isNull("threadPost")))
            .addOrder(Order.desc("date"));

    // alternative
    // String query = "select post, count(rp) from " + forumClass
    // + " post left join post.replies as rp where post."
    // + topicName
    // + " = ? and post.threadPost is null group by post."
    // + topicName + " order by post.date desc ";
    // List<Object[]> res = finder(query, topicID);
    // List<ForumPost> posts = new ArrayList<ForumPost>(res.size());
    // for (Object[] objects : res) {
    // ForumPost fp = (ForumPost) objects[0];
    // long count = (Long) objects[1];
    // fp.setReplyCount((int) count);
    // posts.add(fp);
    // }

    List<ForumPost> posts = getHibernateTemplate().findByCriteria(crit, start, max);

    // set the reply count so we can have this information w/o
    // loading
    // the actual set.
    for (ForumPost fp : posts) {
        fp.setReplyCount(fp.getReplies().size());
    }

    PostsList rtn = new PostsList(posts, getRowCount(crit));

    return rtn;
}

From source file:com.apress.progwt.server.dao.hibernate.SchoolDAOHibernateImpl.java

License:Apache License

public PostsList getRecentForumPosts(int start, int max) {
    DetachedCriteria crit = DetachedCriteria.forClass(ForumPost.class, "fp")
            .add(Expression.isNull("threadPost")).addOrder(Order.desc("date"));

    List<ForumPost> posts = getHibernateTemplate().findByCriteria(crit, start, max);

    PostsList rtn = new PostsList(posts, getRowCount(crit));

    return rtn;/*from   w w  w.j a  va 2s  .co m*/
}

From source file:com.apress.progwt.server.dao.hibernate.SchoolDAOHibernateImpl.java

License:Apache License

public List<User> getUsersInterestedIn(School school, int max) {
    DetachedCriteria crit = DetachedCriteria.forClass(Application.class, "app")
            .add(Expression.eq("school", school));

    List<Application> applications = getHibernateTemplate().findByCriteria(crit, 0, max);

    List<User> users = new ArrayList<User>(applications.size());
    for (Application app : applications) {
        users.add(app.getUser());/*from   w  w w . j  ava2  s. c  om*/
    }
    return users;
}

From source file:com.cai310.lottery.service.lottery.keno.impl.KenoServiceImpl.java

/**
 * ???/*from  w  ww  .ja v  a 2 s .  c o m*/
 * 
 * @param scheme
 *            
 */
public void sendUserPrice(S scheme) {

    //      KenoScheme kenoScheme = null;

    Float bouns = 0.0f;
    Float scoreRate = 0.0f;
    scheme.setPrizeSended(true);
    // zhuhui motify by 2011-05-03  ?
    scheme.setPrizeSendTime(new Date());
    // xxxc motify by 2012-09-03  ??
    scheme.setWinningUpdateStatus(WinningUpdateStatus.PRICE_UPDATED);
    this.schemeDao.save(scheme);

    if (Lottery.isKeno(scheme.getLotteryType())) {//?
        System.out.println(scheme.getLotteryType() + "?");//?
        if (Lottery.SSC.equals(scheme.getLotteryType())) {
            sscScheme = (SscScheme) scheme;
            playName = sscScheme.getBetType().getTypeName();
            simpleName = Lottery.SSC.getSchemeNumberPrefix();
        } else if (Lottery.SDEL11TO5.equals(scheme.getLotteryType())) {
            sdEl11to5Scheme = (SdEl11to5Scheme) scheme;
            playName = sdEl11to5Scheme.getBetType().getTypeName();
            simpleName = Lottery.SDEL11TO5.getSchemeNumberPrefix();
        } else if (Lottery.GDEL11TO5.equals(scheme.getLotteryType())) {
            gdEl11to5Scheme = (GdEl11to5Scheme) scheme;
            playName = gdEl11to5Scheme.getBetType().getTypeName();
            simpleName = Lottery.GDEL11TO5.getSchemeNumberPrefix();
        } else if (Lottery.EL11TO5.equals(scheme.getLotteryType())) {
            el11to5Scheme = (El11to5Scheme) scheme;
            playName = el11to5Scheme.getBetType().getTypeName();
            simpleName = Lottery.EL11TO5.getSchemeNumberPrefix();
        } else if (Lottery.AHKUAI3.equals(scheme.getLotteryType())) {
            kuaiScheme = (AhKuai3Scheme) scheme;
            playName = kuaiScheme.getBetType().getTypeName();
            simpleName = Lottery.AHKUAI3.getSchemeNumberPrefix();
        } else if (Lottery.XJEL11TO5.equals(scheme.getLotteryType())) {
            xjEl11to5Scheme = (XjEl11to5Scheme) scheme;
            playName = xjEl11to5Scheme.getBetType().getTypeName();
            simpleName = Lottery.XJEL11TO5.getSchemeNumberPrefix();
        }
        DetachedCriteria criteria = DetachedCriteria.forClass(Integral.class, "m");
        criteria.add(Restrictions.eq("m.parent", simpleName));
        criteria.add(Restrictions.eq("m.playName", playName));
        List<Integral> list = integralDao.findByDetachedCriteria(criteria);
        bouns = list.get(0).getBouns();
        scoreRate = list.get(0).getScoreRate();
    }

    PrizeSendType prizeSendType = new DefaultPrizeSendType(scheme);// ?
    StringBuffer memosb = new StringBuffer("");
    if (scheme.getShareType() == ShareType.TOGETHER) {
        memosb.append("??");
    } else if (scheme.isChasePlanScheme()) {
        memosb.append("?");
    } else {
        memosb.append("");
    }
    memosb.append("[" + scheme.getSchemeNumber() + "]");
    memosb.append("?{prize}");
    VariableString varReturnMemo = new VariableString(memosb.toString(), null);// ????

    // 
    List<Subscription> subscriptionList = findSubscriptionsOfScheme(scheme.getId(), SubscriptionState.NORMAL);// /?
    BigDecimal actualTotalReturn = BigDecimal.ZERO;// ??
    BigDecimal joinPrize;
    //?
    BigDecimal schemeCost = BigDecimalUtil.valueOf(scheme.getSchemeCost());
    for (Subscription subscription : subscriptionList) {
        joinPrize = BigDecimalUtil.divide(
                BigDecimalUtil.multiply(subscription.getCost(), prizeSendType.getTotalReturn()), schemeCost);
        subscription.setBonusSended(true);
        subscription.setBonus(joinPrize);// ?
        subscription = subscriptionDao.save(subscription);// 

        varReturnMemo.setVar("prize", Constant.numFmt.format(joinPrize));// ???

        // ?
        userManager.oprUserMoney(userManager.getUser(subscription.getUserId()), joinPrize,
                varReturnMemo.toString(), FundMode.IN, FundDetailType.SCHEME_BONUS, null);
        ///
        agentEntityManager.recordAgent(userManager.getUser(subscription.getUserId()), scheme.getLotteryType(),
                AgentDetailType.PRIZE, new Date(), joinPrize, null);
        if (joinPrize.compareTo(BigDecimal.valueOf(bouns)) > 0) {

        } else {
            //
            //            String remark = varReturnMemo.toString()+"?"+scoreRate+"?"+joinPrize.multiply(BigDecimal.valueOf(scoreRate))+"";
            String remark = varReturnMemo.toString().concat("?").concat(scoreRate.toString())
                    .concat("?").concat(joinPrize.multiply(BigDecimal.valueOf(scoreRate)).toString())
                    .concat("");
            userManager.oprUserScore(userManager.getUser(subscription.getUserId()),
                    joinPrize.multiply(BigDecimal.valueOf(scoreRate)), remark, FundMode.IN,
                    ScoreDetailType.WINNING, null);
        }
        actualTotalReturn = actualTotalReturn.add(joinPrize);// ??
    }
    // ?
    BigDecimal remainPrize = prizeSendType.getTotalReturn().subtract(actualTotalReturn);
    // ???1?
    if (remainPrize.doubleValue() < 0) {
        throw new ServiceException("???");
    } else if (remainPrize.doubleValue() > 0) {
        // ???
        if (remainPrize.compareTo(BigDecimal.valueOf(0.01)) > 0) {
            varReturnMemo.setVar("prize", Constant.numFmt.format(remainPrize));
            userManager.oprUserMoney(userManager.getUser(scheme.getSponsorId()), remainPrize,
                    varReturnMemo.toString(), FundMode.IN, FundDetailType.SCHEME_BONUS, null);
            ///
            agentEntityManager.recordAgent(userManager.getUser(scheme.getSponsorId()), scheme.getLotteryType(),
                    AgentDetailType.PRIZE, new Date(), remainPrize, null);
            if (remainPrize.compareTo(BigDecimal.valueOf(bouns)) > 0) {

            } else {
                //
                String s = null;
                String remark = varReturnMemo.toString().concat("?").concat(scoreRate.toString())
                        .concat("?")
                        .concat(remainPrize.multiply(BigDecimal.valueOf(scoreRate)).toString()).concat("");
                userManager.oprUserScore(userManager.getUser(scheme.getSponsorId()),
                        remainPrize.multiply(BigDecimal.valueOf(scoreRate)), remark, FundMode.IN,
                        ScoreDetailType.WINNING, null);
            }
        }
    }

    if (prizeSendType.getOrganigerDeduct().doubleValue() > 0) {// ????
        userManager.oprUserMoney(userManager.getUser(scheme.getSponsorId()), prizeSendType.getOrganigerDeduct(),
                "?[" + scheme.getSchemeNumber() + "]???", FundMode.IN,
                FundDetailType.SCHEME_COMMISSION, null);
    }
    UserNewestLogSupport.won(scheme);
    ticketThenEntityManager.synchronizationWonTicket(scheme);
    //      User user = userManager.getUser(scheme.getSponsorId());
    //      //?
    //      scheme.getSchemeCost();
    //      // cyy-c 2011-04-13 
    //      // 
    //      List<Subscription> subscriptionList = findSubscriptionsOfScheme(scheme.getId(), SubscriptionState.NORMAL);// /?
    //      if (null != subscriptionList && !subscriptionList.isEmpty()) {// ?
    //         Subscription subscription = subscriptionList.get(0);// ?
    //         subscription.setBonus(scheme.getPrizeAfterTax());// ?
    //         subscriptionDao.save(subscription);// ?
    //         userManager.oprUserMoney(user, scheme.getPrizeAfterTax(), this.getLottery()
    //               .getLotteryName() + ":?:[" + scheme.getSchemeNumber() + "]", FundMode.IN,
    //               FundDetailType.SCHEME_BONUS, null);// ?
    //         ///
    //         agentEntityManager.recordAgent(user, this.getLottery(), AgentDetailType.PRIZE,new Date(), scheme.getPrizeAfterTax(),null);
    //      }
}

From source file:com.cai310.lottery.web.controller.lottery.NumberSchemeBaseController.java

protected void periodAnalyse() {
    if (null != this.period) {
        DetachedCriteria criteria = DetachedCriteria.forClass(MobileNewsData.class, "m");
        criteria.add(Restrictions.eq("m.periodId", this.period.getId()));
        criteria.add(Restrictions.eq("m.lotteryType", this.period.getLotteryType()));
        criteria.add(Restrictions.eq("m.lotteryPlayType", getLotteryPlayType()));
        criteria.add(Restrictions.eq("m.mobileInfoType", MobileInfoType.ZJJH));
        List<MobileNewsData> list = this.queryService.findByDetachedCriteria(criteria);
        for (MobileNewsData mobileNewsData : list) {
            if (null != mobileNewsData.getAnalyse()) {
                if (mobileNewsData.getAnalyse().indexOf("|") != -1) {
                    this.commonAnalyse = mobileNewsData.getAnalyse().split("\\|")[0];
                    this.analyse = mobileNewsData.getAnalyse().split("\\|")[1];
                } else {
                    this.commonAnalyse = mobileNewsData.getAnalyse();
                }/*  w  w  w  . j a va 2  s .c om*/
            }
            if (null != mobileNewsData.getSingleAnalyse()) {
                if (mobileNewsData.getSingleAnalyse().indexOf("|") != -1) {
                    this.commonSingleAnalyse = mobileNewsData.getSingleAnalyse().split("\\|")[0];
                    this.singleAnalyse = mobileNewsData.getSingleAnalyse().split("\\|")[1];
                } else {
                    this.commonSingleAnalyse = mobileNewsData.getSingleAnalyse();
                }
            }
        }
    }
}

From source file:com.cimmyt.model.dao.impl.LabStudyDAOImpl.java

License:Apache License

@Override
@SuppressWarnings("unchecked")
public List<LabStudy> getCustomQuery(final List<DsSearchParam> params, final int firstResult,
        final int maxResults) {
    final List<DsSearchParam> paramsTmp = new ArrayList<DsSearchParam>(params); //avoid changing original List

    final List<Integer> studyIdList = getListWithSampleFilters(paramsTmp);

    List<LabStudy> resultList = null;
    resultList = this.getHibernateTemplate().execute(new HibernateCallback<List<LabStudy>>() {
        @Override/*from   ww w  . j  ava  2  s  .  com*/
        public List<LabStudy> doInHibernate(Session session) throws HibernateException, SQLException {
            DetachedCriteria criteria = DetachedCriteria.forClass(LabStudy.class, VALUE_STUDY);
            addCriteria(criteria, paramsTmp, false);
            addCurrentSampleFilters(criteria, studyIdList);
            return (List<LabStudy>) getHibernateTemplate().findByCriteria(criteria, firstResult, maxResults);
        }
    });
    return resultList;
}

From source file:com.cimmyt.model.dao.impl.LabStudyDAOImpl.java

License:Apache License

@Override
public Integer getTotalRowsCustomQuery(final List<DsSearchParam> params) {
    final List<DsSearchParam> paramsTmp = new ArrayList<DsSearchParam>(params); //avoid changing original List

    final List<Integer> studyIdList = getListWithSampleFilters(paramsTmp);

    Integer resultList = 0;//from w  w w  .j  av  a2s . c om
    resultList = this.getHibernateTemplate().execute(new HibernateCallback<Integer>() {
        @Override
        public Integer doInHibernate(Session session) throws HibernateException, SQLException {
            DetachedCriteria criteria = DetachedCriteria.forClass(LabStudy.class, VALUE_STUDY);
            addCriteria(criteria, paramsTmp, false);
            addCurrentSampleFilters(criteria, studyIdList);
            criteria.setProjection(Projections.rowCount());
            return (Integer) getHibernateTemplate().findByCriteria(criteria).get(0);
        }
    });
    return resultList;
}

From source file:com.cimmyt.model.dao.impl.LabStudyDAOImpl.java

License:Apache License

private List<Integer> getListWithSampleFilters(final List<DsSearchParam> params) {

    final List<Integer> studyIdList = this.getHibernateTemplate()
            .execute(new HibernateCallback<List<Integer>>() {
                @SuppressWarnings("unchecked")
                public List<Integer> doInHibernate(Session session) throws HibernateException, SQLException {
                    List<DsSearchParam> sampleParams = new ArrayList<DsSearchParam>();
                    for (DsSearchParam p : params) {
                        if (p.getElement().equals(VALUE_SAMPLE)) {
                            sampleParams.add(p);
                        }//w  w  w  .ja va  2s .  c o m
                    }
                    params.removeAll(sampleParams);

                    DetachedCriteria criteria = DetachedCriteria.forClass(LabStudy.class, VALUE_STUDY);
                    addCriteria(criteria, sampleParams, true);
                    criteria.setProjection(Projections.distinct(Projections.property("labstudyid")));
                    return (List<Integer>) (sampleParams.size() > 0
                            ? getHibernateTemplate().findByCriteria(criteria)
                            : null);
                }
            });
    return studyIdList;
}

From source file:com.cimmyt.model.dao.impl.SampleDetailDAOImpl.java

License:Apache License

@Override
@SuppressWarnings("unchecked")
public List<SampleDetail> getCustomQuery(final List<DsSearchParam> params, final int firstResult,
        final int maxResults) {
    final List<DsSearchParam> paramsTmp = new ArrayList<DsSearchParam>(params); //avoid changing original List

    List<SampleDetail> resultList = null;
    resultList = (List<SampleDetail>) this.getHibernateTemplate()
            .execute(new HibernateCallback<List<SampleDetail>>() {
                @Override/* w ww  .j  av  a2 s.c  om*/
                public List<SampleDetail> doInHibernate(Session session)
                        throws HibernateException, SQLException {
                    DetachedCriteria criteria = DetachedCriteria.forClass(SampleDetail.class, VALUE_SAMPLE);
                    addCriteria(criteria, paramsTmp);
                    return (List<SampleDetail>) getHibernateTemplate().findByCriteria(criteria, firstResult,
                            maxResults);
                }
            });
    return resultList;
}

From source file:com.cimmyt.model.dao.impl.SampleDetailDAOImpl.java

License:Apache License

@Override
public Integer getTotalRowsCustomQuery(final List<DsSearchParam> params) {
    final List<DsSearchParam> paramsTmp = new ArrayList<DsSearchParam>(params); //avoid changing original List

    Integer resultList = 0;/* w  w  w.j a  v a2  s.co  m*/
    resultList = (Integer) this.getHibernateTemplate().execute(new HibernateCallback<Integer>() {
        @Override
        public Integer doInHibernate(Session session) throws HibernateException, SQLException {
            DetachedCriteria criteria = DetachedCriteria.forClass(SampleDetail.class, VALUE_SAMPLE);
            addCriteria(criteria, paramsTmp);
            criteria.setProjection(Projections.rowCount());
            return (Integer) getHibernateTemplate().findByCriteria(criteria).get(0);
        }
    });
    return resultList;
}