hibernate 多表查询问题

问题描述

create table t_house(house_id int auto_increment primary key,house_name varchar(200),house_type_id int ....)create table t_house_type(house_type_id int primary key,house_type_name varchar(50),valid bit);house表的外键house_type_id对应t_house_type的主键,我要多表查询获取比如house的name 和house_type的nameString hql = "select new list(a.house_name ,b.house_type_name ) FROM house as a,houseType as b WHERE a.house_type_id=b.house_type_id";Query query = session.createQuery(hql);List list = query.list();取到的list显然只有两个字段,因为我house和houseType都有dao和hbm.xml但是对应这两个字段却没有dao和hbm.xml现在我list值能取到,但是house_list = hs.queryAllHouse();ActionContext.getContext().getSession().put("house_list", house_list);list放入session中,然后到页面jsp显示<s:iterator value="#session.house_list"><s:property value="house_name" /><s:property value="house_type_name" /></s:iterator>却无法显示,不知道怎么解决,求大神指导,如果不在hbm.xml写many-to-one的情况下怎么解决多表查询问题,谢谢 问题补充:我在放session的时候print过,有值啊

解决方案

<c:forEach items="${house_list}" var="orderItem"> ${orderItem[0]} ${orderItem[1]} </c:forEach>orderItem在后台java代码中是什么对象,在这里就是什么对象,后台你查询两个不同对象的字段,是Object[],前台对应的ognl表达式取Object[]对应的列就可以了
解决方案二:
house_list你确定有值吗? <c:forEach items="${orderItemList}" var="orderItem"> ${orderItem[0]}${orderItem[1]}</c:forEach>

时间: 2024-07-29 13:28:51

hibernate 多表查询问题的相关文章

java-请问hibernate多表查询后如何映射到非持久化值对象

问题描述 请问hibernate多表查询后如何映射到非持久化值对象 请问hibernate多表查询后如何映射到非持久化值对象dao层使用的是泛型

hibernate多表查询返回object,有没有更好的解决办法

问题描述 hibernate多表查询返回object,有没有更好的解决办法 各位大神,您们好!小弟最近才开始学习hibernate,hibernate多表查询返回object的数组,有没有办法让它返回以主表为根对象的对象集合,根对象可以使用get子对象的方法获取到其它的从表映射的对象.fetch="join" <hibernate-mapping> <class name="com.zdsoft.entity.Sysuser" table=&quo

hibernate 多表查询 子查询

问题描述 hibernate 多表查询 子查询 hql="from Orderitem oi where oi.order.ordersid in (select o.ordersid from Order o where o.orderstatus in (:orderstatus) and o.users.userid in (:uid)"; 其中Order Orderitem,Users 都是表,我知道这样写不对,但是不知道该怎样写 其中Order 与Orderitem和User

hibernate多表查询问题

问题描述 hibernate多表查询时表名用pojo映射名和数据库表名有什么区别 问题补充:dujiaolianglong 写道 解决方案 hibernate 多对多POJO 设计问题 中间关系表不会生成实体 但是 中间表中还有一些字段 ,这样该怎么设计例如 用户表和 菜单表 是多对多 中间表中想加入生效日期和实效如期改怎么办

Hibernate多表查询

问题描述 public PageModel getPage(int currentPage, int pageSize) { String hql = "from Orders,Users,Orderstate where Orders.clientid = Users.userid and Orders.progress = Orderstate.stateid"; String count = "select count(*) from Orders"; Pag

Hibernate 多表查询

问题描述 tableA:oidonamestatustableB:cidoiddateselecta.oid,a.oname,b.cid,b.datefromtableAa,tableBbwherea.oid=b.oidanda.status=1orderbyb.date操作TableA,TableB两个对象,把查询结果封装成一个vo对象Info,执行上一个查询语句的功能该怎么写 解决方案 解决方案二:session.createSQLQuery("selecta.oid,a.oname,b.c

关于Hibernate多表查询返回多个实体的取值问题

问题描述 public List findJianceXM(String bzdm,String tjdm){ Session s=super.getSession(); String sql="select distinct {b.*},{a.*} from 系统_污染物标准排放明细 a join 系统_监测项目 b on a.监测项目编号=b.监测项目编号 where a.标准代码=? and a.条件编码=?"; Query q=s.createSQLQuery(sql).add

用struts读取hibernate中多表查询结果

问题描述 我有两个表,课程表Course和成绩表Score,然后通过hibernate跨表查询获取学号为sco的学生的选课信息,由于要同时获取课程信息所以要用到Course表然后将结果用struts将得到的结果显示,应该用什么标签啊logic:iterator能够完成吗?hql为:fromCoursec,Scoreswheres.cno=c.noands.sno=:sco:(其中sno为学号,cno为课程号) 解决方案 解决方案二:利用视图,通过leftjoin课程表,把你想要的数据取到一张表中

sql多表查询图形化界面查询返回结果与程序端hibernate查询结果不符。

问题描述 sql多表查询图形化界面查询返回结果与程序端hibernate查询结果不符. 我使用多表查询,其中一个表与令一个表字段名相同,在hibernate界面后一个与前一个字段名相同的字段输出结果也与前一个字段名相同.前问在不改字段名的情况下有什么办法解决?(以下d.name与p.name输出结果一样,显然d.name输出结果是错的) select p.id,p.name,p.post_coefficient,d.name ,postType,a.areaName,p.postHour,p.s