应用Hibernate来实现多表的联合查询

来源:百度知道 编辑:UC知道 时间:2024/06/28 01:07:45
本人刚接触Hibernate,遇到多表关联查询的问题,请高手帮忙解决...
直接举例:
有三个对象:商品,商品类型,供应商(大家都能看明白他们之间对应关系),现在我要用Hibernate技术,得到一个List,此List用于在jsp页面显示商品名称,商品类型名称,供应商名称等信息(三张表的联合查询)
如查询某个商品:
表结构如下:
goods(商品表)
goodsid(商品id) goodsname(名称) typeid(分类-外键) supplierid(供应商-外键)

type(分类表)
typeid(id主键) typename(分类名称)

supplier(供应商表)
supplierid(ID主键) suppliername( 供应商名称)

如何实现呢?
session.createCriteria(Goods.class).createAlias("Type","t")..createAlias("Supplier","s")
这种模式的,具体的请大侠们给点方案,最好提供代码实现,谢谢啦!

多谢回答!
但是有新问题,如何在jsp页面中把list中的内容显示出来呢?

session.createCriteria(Goods.class).createAlias("Type","t")..createAlias("Supplier","s")
这种方式可以,但是建议你解析这个list,取出具体的商品名称,商品类型等信息放到新的list里,然后在页面列出这个新的list

Criteria c = getSession().createCriteria(Goods.class);
c.add(Restrictions.eq("goodsid", 1));
c.list();
将lazy设为true;
页面上用el表达式
${goods.type.typename}分类名
${goods.supplier.suppliername}供应商名称
你这个查询不难处理。。