hibernate criteria 关联查询实例

本文介绍了使用Hibernate Criteria API进行复杂关联查询的方法。通过两个具体案例,展示了如何利用DetachedCriteria实现跨表查询及筛选条件的设置,包括求最大值、最小值等高级特性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

 

 

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);

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值