日期:2014-05-17  浏览次数:20725 次

hql两表查询怎么写?
表A的字段1和表B的主键值相同,表A的数字编号在表B中也有,并且表B里有字段名称,现在我想通过表A的字段1拿到表B的字段名称。现在用SSH开发,需要写出来hql语句,要求联查,怎么写?麻烦说清楚点,言之有理,即可得分。

------解决方案--------------------
hql跟sql基本写法是一样的,hql对应的是映射文件,sql是直接查表,如果hql映射文件是以一对多等形式,那就只要查主表,对应的表数据会自动关联出来,不过程序会比较慢.如果实在不会hql,就按你的sql写法:Query query = getSession().createSQLQuery(hql.toString());
return query.list();
------解决方案--------------------
hql = "from 表A where A.id=xxx";

List<表A> al = find(hql);
表B = ((表A)al.get(0)).表B;




------解决方案--------------------
引用:
Quote: 引用:

select b.tb1Mc from tb1 a, tb2 b where a.id=b.tb1Id  你说的是这个意思吗  我才不是 这么简单也会拿出来问吗
不是sql 是hql。
 好久不用了  都忘了
------解决方案--------------------
就是说A和B是多对一的关系,那你就在A.hbm.xml里配置many-to-one和B建立关系,在B.hbm.xml里配置set和A建立关系。然后就可以select A.*,A.B.* from A