标题:hibernate+struts多表查询,显示问题??
只看楼主
999hits
Rank: 1
等 级:新手上路
威 望:1
帖 子:227
专家分:0
注 册:2005-10-2
 问题点数:0 回复次数:9 
hibernate+struts多表查询,显示问题??
hibernate执行多表查询时候,除了在hql上实现外,在DAO类上怎样体现啊,DAO是某一个特定的表的操作,那多表查询的函数该写在那个表的DAO中呢?
还有就是用多表查询出来的结果,有一个list存储,然后用<logic:iterate/>显示,具体如下
<logic:iterate id="element" name="bookSearchList">
<tr>
<td width="760" cellSpacing="1" cellPadding="1" borderWidth="1">

<input type="checkbox" name="Your_Table_ID_Name" value="<bean:write name="element" property="id"/>" onclick="change(this)"/>

<bean:write name="element" property="vtitle"/>
<bean:write name="element" property="vauthor"/>
<bean:write name="element" property="vprintPlace"/>
<bean:write name="element" property="vprintDate"/>
<bean:write name="element" property="vprintAdd"/>
</td>
</tr>
</logic:iterate>
为什么总是有No getter method for property id of bean element这样的一个错误,为什么不能得到id呢?
我对那个list显示一下大小,有正确的数据,但是为什么不显示呢?
搜索更多相关主题的帖子: hibernate struts 查询 
2007-03-19 09:20
支离破碎
Rank: 6Rank: 6
等 级:贵宾
威 望:23
帖 子:737
专家分:0
注 册:2007-1-4
得分:0 
多表查询的时候只用在HQL上实现应该就可以了,DAO是对所有数据操作的集合并不是对特定的表操作,你可以把你的所有的查,删,更方法写到一个DAO中。只通过HQL语句就能实现了。。

struts标签不太懂,帮不上。。。

人生漂泊無依,有如浮萍菱花,隨水飄流,你会在我这里停留吗?
[url=http://51mynet.]http://51mynet.[/url]
2007-03-19 09:34
999hits
Rank: 1
等 级:新手上路
威 望:1
帖 子:227
专家分:0
注 册:2005-10-2
得分:0 
谢谢版主,期待会Struts帮帮我这个忙!!

J3D的摸瞎人
2007-03-19 09:47
支离破碎
Rank: 6Rank: 6
等 级:贵宾
威 望:23
帖 子:737
专家分:0
注 册:2007-1-4
得分:0 
No getter method for property id of bean element
是报你的bean中无id 的get方法,你看一下你的list 中存的对象的javabean是否有id 的set/get方法

人生漂泊無依,有如浮萍菱花,隨水飄流,你会在我这里停留吗?
[url=http://51mynet.]http://51mynet.[/url]
2007-03-19 10:33
999hits
Rank: 1
等 级:新手上路
威 望:1
帖 子:227
专家分:0
注 册:2005-10-2
得分:0 
版主,hibernate的多表的查询是不是要用原生SQL查询啊,版主能不能给我举一个多表查询的例子,比如
班级表:id,bjName,bjTeacherid;
教师表:id,lsName;
然后班级的bjTeacherid就是教师表的id;
然后让我们显示bjName,lsName,并存储在一个list里面

J3D的摸瞎人
2007-03-19 10:46
支离破碎
Rank: 6Rank: 6
等 级:贵宾
威 望:23
帖 子:737
专家分:0
注 册:2007-1-4
得分:0 

好久没用Hibernate,不过好像记得应该是:
定义二个javabean: ClassBean,TeacherBean(假定一个老师只对应一个班级,即一对一的关系)
那么在ClassBean将会有一个TeacherBean的对象。
比如查的时候你以老师的Id来查:
public class ClassBean{
.....
private TeacherBean t;
set/get TeacherBean;
}
SQL语句就这样写:
from ClassBean c where c.t.id="xxxxxxxxx"
-----------------------------------------------------------

如果是多对多的关系,一般要用一个中间表来存放teacher和class的id,
查询的时候就查中间表,然后通过 中间表.teacher.id 这种形式来查。

----------------------------------------------------------

网上有不少多表查询的例子你可以再看一下,可能有些我记不太清楚。。。。。


人生漂泊無依,有如浮萍菱花,隨水飄流,你会在我这里停留吗?
[url=http://51mynet.]http://51mynet.[/url]
2007-03-19 10:57
999hits
Rank: 1
等 级:新手上路
威 望:1
帖 子:227
专家分:0
注 册:2005-10-2
得分:0 
版主会在hbm中写吗,看了好多原生SQL,头都大了

J3D的摸瞎人
2007-03-19 11:47
支离破碎
Rank: 6Rank: 6
等 级:贵宾
威 望:23
帖 子:737
专家分:0
注 册:2007-1-4
得分:0 
hbm文件要写生成他们表之间的对应关系。。你到网上查一下写法吧。具体的我也记不得了。

人生漂泊無依,有如浮萍菱花,隨水飄流,你会在我这里停留吗?
[url=http://51mynet.]http://51mynet.[/url]
2007-03-19 13:14
ljl000000ljl
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2007-4-23
得分:0 
回复:(999hits)hibernate+struts多表查询,显示问题...

经过session处理过的值对象,要用相应的类接收。做页面显示时也要分别显示

2007-04-23 14:27
黄袖标
Rank: 4
等 级:贵宾
威 望:13
帖 子:676
专家分:0
注 册:2007-3-22
得分:0 
Criteria criteria = session.createCriteria(xxx.class).add(
Restrictions.eq("xxx.xxx", xxx)).setFetchMode(
"", FetchMode.JOIN);
hib里这样设置下,应该可以把关联的东西抓出来,struts标签用的也没问题,我看你报的错误信息是没有set的问题,看看bean里是不是忘了set和get方法,要是排除了这个问题,在看看你的hib主键策略(如果你的这个id是主键的话),最后还有可能就是如果你这个id是关联的一对多或着多对一关系的时候,这个id是只属于其中一个表的,具体是属于多还是一我也不记得了,你可以试下.

我胡汉三又回来啦!物是人非啊,只有静夜思大大还在。
2007-04-25 10:32



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-125073-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.200435 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved