Java,hibernate谁写个hql(sqlserver2005的多表连接查询语句)

Selectp.id,p.name,e.emailfromtb_personaspjointb_emailaseonp.id=e.person_id其中tb_person... Select p.id,p.name,e.email from tb_person as p join tb_email as e on p.id = e.person_id 其中tb_person对应的实体类是Person,tb_email对应的实体类是Email.急啊,谢谢 展开
 我来答
a7570749
2012-08-06 · 超过28用户采纳过TA的回答
知道答主
回答量:118
采纳率:0%
帮助的人:57.3万
展开全部
hql : session.createSQLQuery("Select p.id,p.name,e.email from tb_person as p join tb_email as e on p.id = e.person_id 其中tb_person"); //得到的是 list
或者 利用 hibernatequery
session.createQuery(from Email); //也可

【关键是 hbm.xml 映射文件你配好了没,如果这个配好了 对应关系 直接取即可】 不会配的话 可以问我
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
dongmin2010525
2012-08-06 · TA获得超过126个赞
知道答主
回答量:64
采纳率:0%
帮助的人:43.7万
展开全部
一般有关联的两个表中间都会有一个做为关联表的。

我公司现在的左连接查询都这样,而你这应该可以这样
1.在JAVA类Person里添加关联Email对像
Set personEmail= new HashSet();
public Set getPersonEmail() {
return personEmail;
}
public void setPersonEmail(Set personEmail) {
this.personEmail= personEmail;
}
2.在Person.hbm.xml配置文件里设置
<set name="personEmail" inverse="true">
<key>
<column name="userid" precision="22" scale="0" not-null="true" />
</key>
<one-to-many class=".......PersonEmail"/>
</set>
(前提Person和Email中间有一个关联表personEmail,表里放一个序列ID和两个关联对像ID就可以了,而实体类里就变成两个关联对像)

3.HQL
from Person p left join fetch p.email
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
minxiao1215
2012-08-02 · TA获得超过694个赞
知道小有建树答主
回答量:1641
采纳率:100%
帮助的人:748万
展开全部
select p.id,p.name,e.email from Person p join Email e where p.id = e.person_id;

hql 语句中的 tb_person (数据表) 应该换成 对应的实体类名,属性应该换成类中的成员属性而不是数据表中的字段.
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lypzyy_9907
2012-08-03 · TA获得超过368个赞
知道小有建树答主
回答量:291
采纳率:100%
帮助的人:216万
展开全部
Select p.id,p.name,e.email from Person as p join Email as e on p.id = e.person_id
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式