首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2EE开发 >

b/s公交查询系统 hql(站站,站点查询)语句写不来了,总是报错,

2013-12-04 
b/s公交查询系统 hql(站站,站点查询)语句写不来了,总是报错,求救。。。用的是mysql数据库,hql语句关联3个表的

b/s公交查询系统 hql(站站,站点查询)语句写不来了,总是报错,求救。。。
用的是mysql数据库,hql语句关联3个表的写不来,有木有大神写过类似,支个招- -
车次表(businfo) ( 车次号、起点站、终点站、票价、服务时间) 此为车次实体对应的关系模式,车次号为关系的主键,对应的表为businfo(公交车信息表) 。
字段名字段类型说明
bidInt车次号,自动编号
beginvarchar(50)始发站 (非空)
endvarchar(50)终点站 (非空)
ticketnote varchar(20)票价 (非空)
btimevarchar(50)出发时间 (非空)
etimevarchar(50)结束时间 (非空)
站台表(stinfo)(站台号、站台名、备注)。此为站台实体对应的关系模式,站台号为关系的主键。对应的表为stinfo (车站信息表)。
字段名字段类型说明
stidInt站台号,自动编号
stnamevarchar(50)站台名  (非空)
stnotevarchar(200)备注信息
经过表(busst) (车次号、站台号、经过的次序)。此为经过关系的关系模式,(车次号、站台号、经过的次序)为关系的主键。对应的表为busst (车次经过站点信息表)。
字段名字段类型说明
bidInt车次号(非空)
stIdInt站台号(非空)
secidInt站台在车次的次序(非空)
hibernate?hql?mysql
[解决办法]
上面的作废
这个三个表的关联关系:
在车次表businfo的Int车次号去经过表busst里能把这个车次经过的所有站台号查出来,然后在用站台号去站台表stinfo里查到这个站台的信息  我理解的对不对?  你先说下你现在想要的结果吧 
[解决办法]
select * from stinfo s,busst b,businfo m where  m.bid=b.bid and b.stId = s.stId 这样对吗? 
[解决办法]

select * from businfo  bi inner join (select * from busst bs inner join stinfo si on bs.bid=si.stid) bsi on bi.bid=bsi.bid 这样算是符合要求么
[解决办法]
select stid from stinfo where stname=?
select bid from busst where stId=?(上边sql的结果)
select * from businfo where bid = ?(上句sql的结果)

然后自己拼成一条sql 再转换成hql
[解决办法]
这种业务性的问题没有办法直接给你答案,建议楼主可以在网上查一下hibernate多表联查的相关资料,比如这个http://www.blogjava.net/ldwblog/archive/2013/09/12/403983.html,还可以再看看别的文章之类的。希望能帮到你。
[解决办法]
写存储过程来做

热点排行