SQL语句转为HQL语句

有高手能帮我把下面的SQL语句转化为HQL语句吗?麻烦了~~~~我是在业务逻辑层写的查询语句SQL语句:SELECT*FROMApplicationDetailascJO... 有高手能帮我把下面的SQL语句转化为HQL语句吗?
麻烦了~~~~
我是在业务逻辑层写的查询语句
SQL语句:SELECT * FROM ApplicationDetail as c JOIN Information as i ON c.ConsumableId = i.ID

程序代码:
public IList<ApplicationDetail> GridShow(string id)
{
IQuery q = base.session.CreateQuery(string.Format("SELECT * FROM ApplicationDetail as c JOIN Information as i ON c.ConsumableId = i.ID WHERE c.RequestId = '{0}'", id));
return q.List<ApplicationDetail>();
}

目前查询里面还是写的SQL语句,是不对的,麻烦帮我修改一下,谢谢了
我是想根据表ApplicationDetail中的物品ID从Information表中取出对应该物品ID的物品名称,感谢了
展开
 我来答
沙誓不懂情
2010-02-05 · 超过17用户采纳过TA的回答
知道答主
回答量:61
采纳率:0%
帮助的人:17.3万
展开全部
如果你要一次查出2个对象这两个对象应该是有关联的,比如一对一或一对多的关系,这样你在实体类里定义类的时候就应该类似下面这样。
public class ApplicationDetail {
private Information information ;
}

比如取得时候还是取ApplicationDetail 对象,但这个对象的属性包含Information 对象。
hql: from SetInformation
list里装的是SetInformation 对象
等同于HQL语句 FROM ApplicationDetail C WHERE C.Information.ConsumableId (=1写上就只查询id为1的记录)
如果没有关系映射而是人为的映射的话FROM ApplicationDetail as c ,Information as i WHERE c.ConsumableId = i.ID
这个虽然是正确语法但是程序运行起来应该会报异常,因为你查了2张表的内容但是你的实体BEAN里面只有1张表的映射所以hibernate里会报异常,通常解决办法是先查一张表的内容然后再业务层做循环再循环过程中查另外张表的内容再从新组合成一个list返回给页面
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式