Criteria 关联查询实例
一、
DetachedCriteria d = DetachedCriteria.forClass(Notify.class)
.setProjection(Property.forName("id").max());
Criteria c = getHibernateTemplate().getSessionFactory().openSession().createCriteria(R_Order.class)
.createAlias("notify","n")
.add(Restrictions.in("id", orders))
.add(Property.forName("n.id").eq(d))
.createAlias("project","p")
.createAlias("project.user","u").add(Restrictions.eq("u.id", userId));
二、
//根据项目 查出时间最早的,余额大于0的财务加成的时间
DetachedCriteria detachedCriteria = DetachedCriteria.forClass(
FinancialBonus.class).createAlias("money", "m").createAlias(
"project", "p").add(Restrictions.eq("p.id", pid)).add(
Restrictions.gt("m.balance", 0.00)).setProjection(
Property.forName("m.createTime").min());
//和最大时间相等的财务加成
Criteria criteria = getSession().createCriteria(FinancialBonus.class)
.add(Property.forName("createTime").eq(detachedCriteria));
FinancialBonus financialBonus = (FinancialBonus) criteria.list().get(0);