ssh框架外键查询

举个例子,知道一个学校的系,怎么查到所有系里的学生宿舍,代码如下,@RepositorypublicclassChuangweiDaoextendsHibernateDa... 举个例子,知道一个学校的系,怎么查到所有系里的学生宿舍,代码如下,
@Repository
public class ChuangweiDao extends HibernateDaoSupport{
public List<Bed> search(YuanXi yuanXi){
String sql0 = "from YuanXi where name=?";
List yuanxi1 = super.getHibernateTemplate().find(sql0, new Object[]{yuanXi.getName()});
String sql = "from Bed where YuanXi=?";
List<Bed> bed = super.getHibernateTemplate().find(sql, new Object[]{yuanxi1.get(0)});
return bed;}}

不知道代码对不对,我的意思是Bed实体类里有一个private YuanXi yuanxi;求大神,
List<Bed> bed = super.getHibernateTemplate().find(sql, new Object[]{yuanxi1.get(0)});
可否实现查询该yuanxi里的所有bed
展开
 我来答
百度网友876eb9c
2013-08-04 · TA获得超过1513个赞
知道小有建树答主
回答量:1200
采纳率:0%
帮助的人:284万
展开全部
我有几点要和你说:

第1:既然Bed实体类里有一个private YuanXi yuanxi了。你就没必要写两条sql语句了。
List list=this.getHibernateTemplate().find("select id,name from Bed b where b.yuanxi.name=?",这个替代问号里的内容)

我这个语句你要适当改下。首先我上面的语句是查询出宿舍的id和name出来。你可以根据自己的需要查出你要的。 还有个;b.yuanxi.name。我这是根据系的名称找的。yuanxi就是Bed里的YuanXI类的对象名。我是根据name。你也可以根据id来找。

还有个小问题。既然只有一个?号。后面就不需要再用数组。如果是string。就把字符串替代进去就行了。

第2点:要提醒你的。这得到list之后。里面放的是数组。并不是对象了。当你在action放到request域中的时候。在jsp标签可以这么取。
<c:forEach items="${list}" var="obj">
<tr>
<td>${obj[0]}</td>
<td>${obj[1]}</td>
</tr>
</c:forEach>

我稍微解释下。每循环一次就取出一个数组。比如我上面的sql语句是先查id。再查name。假设查出的第一个床位是 id是1.name叫做520。那么第一个数组里就放的是1和520.${obj[0]}就取出了1.${obj[2]}取出了520.。依此类推。

ps:你的问题是可以查询取出系里所有的宿舍。
追问
其实我发现我的问题比这个要复杂的多,你的回答我已经很满意了,可以可以要求你提供下QQ,因为我这里面有标签Manytoone,我不知道这样可不可以查到,现在在家,数据库没在我这,所以试不了
追答
QQ:2698935677.

不过我也算是起步。。
Storm代理
2023-07-25 广告
StormProxies是全球大数据IP资源服务商,其住宅代理网络由真实的家庭住宅IP组成,可为企业或个人提供满足各种场景的代理产品。点击免费测试(注册即送1G流量)StormProxies有哪些优势?1、IP+端口提取形式,不限带宽,IP... 点击进入详情页
本回答由Storm代理提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式