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