select a.订单id, a.发生日期, 发货单位, 订单金额 from 表订单 a
left join (
select 订单id ,sum( 产品数量*产品单价) 订单金额
from 表订单产品
group by 订单id
)b on a.订单id =b.订单id
这句sql 该怎么转成hql啊订单表 跟订单产品表 是一对多
left join (
select 订单id ,sum( 产品数量*产品单价) 订单金额
from 表订单产品
group by 订单id
)b on a.订单id =b.订单id
这句sql 该怎么转成hql啊订单表 跟订单产品表 是一对多
解决方案 »
- jsp中table上的鼠标响应事件问题
- java webservice 编译出错
- <ww:file name="'mcgXML'"/>标签为什么不能为空?
- 请问如何很好的设计一个二级页面?(JSP+MSSQL+TOMAT的)
- 请问Spring中的重点是什么啊?
- 如何在jsp页面从sql中读取datetime型数据,只显示日期
- war包访问的问题,帮帮忙
- 关于cookie的小总结(JSP和Servlet版本),要求置顶
- 菜鸟求助! form未定义
- 【菜鸟提问】jsp 和 asp 能同时运行在Win98下么?
- java.lang.ClassNotFoundException这是什么错误?
- JQuery ajax传递参数问题
像你这种自定义的查询,而没有相应的对象与之映射的话,还是在Hibernate中使用SQL吧,而不是HQL
Hibernate把外键映射成一个实体。
也就是说,当一个表中存在一个外键的时候,那么生成的实体类中将会封装成一个外键的实体类。
所以当你查询主表的时候,从表的数据也就获取到了。但是这个会有hibernate懒加载的问题。
这个你还需慢慢掌握啊
在生成映射文件时,给有关联的文件之间建立关系
是一对一还是一对多 甚至是多对多 就看你自己了
建立关系后可以使用 lazy 懒加载 或 fetch 抓取 出来 select a.订单id, a.发生日期, 发货单位, 订单金额 from 表订单 a
条件可以通过 a 点出来
HIBERNTATE有多对多关联完全可做。
用了HIBERNATE还在里面用SQL语句不好。
表即对象 OO的思想楼主没有深刻的去理解。
前提是必须用hibernate做适配,继承HibernateDaoSupport
然后调用hibernate里的里面方法
/*
* 分页/带条件查询
*/
public List pageQuery(final String hql,final Integer page,final Integer size,final Object ...p){
return super.getHibernateTemplate().executeFind(new HibernateCallback(){ public Object doInHibernate(Session session)
throws HibernateException, SQLException {
Query query=session.createQuery(hql);
//处理参数
if(p!=null){
for (int i = 0; i < p.length; i++) {
query.setParameter(i, p[i]);
}
}
//分页处理
if(page!=null&&size!=null){
query.setFirstResult(size*(page-1)).setMaxResults(size);
}
return query;
}
});
}
这个方法很强大,可以实现分页,也可以实现带条件查询(后面的分页可以不带),也可以实现带条件分页。看你怎么用,怎么用怎么强至于你说的把你那些语句转成hql语句很简单,当你映射了hibernate关系之后,在实体关系表里,
自然有关系表的对象
就不用谢什么左右连接,
select a.订单id, a.发生日期, 发货单位, 订单金额 from 表订单 a
left join (
select 订单id ,sum( 产品数量*产品单价) 订单金额
from 表订单产品
group by 订单id
)b on a.订单id =b.订单id直接:比如说:select * from dome1 join dome2 where dome1.id=dome.id
==>from dome as dometest dometest.关系表的对象.关系表里的属性=......
left jion fetch 抓取出你要的关联"对象"
不用想太多了