List of usage examples for org.hibernate.criterion DetachedCriteria forClass
public static DetachedCriteria forClass(Class clazz, String alias)
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; }