mysql语句查询:select
*
from
order_goods og,
t_goods g
where
order_id=?
and og.goods_id=g.goodsId这个在数据中可以查询出数据,
我的二个实体类
(关联关系是多对多的)
Goods,
Orders,
中间表:order_goods,如何用hibernate 对象查询,根据Orders 的Id查询Goods 信息,并把查询出来的数据封装成List<Goods>hibernatehqlmysql对象查询
*
from
order_goods og,
t_goods g
where
order_id=?
and og.goods_id=g.goodsId这个在数据中可以查询出数据,
我的二个实体类
(关联关系是多对多的)
Goods,
Orders,
中间表:order_goods,如何用hibernate 对象查询,根据Orders 的Id查询Goods 信息,并把查询出来的数据封装成List<Goods>hibernatehqlmysql对象查询
from Orders where order_id=?
我的映射:
@ManyToMany(fetch = FetchType.EAGER)
@JoinTable(name = "order_goods", joinColumns = { @JoinColumn(name = "order_id") }, inverseJoinColumns = { @JoinColumn(name = "goods_id") })
private Set<Goods> goods = new HashSet<Goods>();多对多单向关联:我的junit 测试:
String hql = "from Orders where id=1";
Query query = (Query) s.createQuery(hql);
List<Orders> list = query.list();
通过orderid可以获取到List<Orders>集合,我下个用List<Orders>获取他所关联的Goods信息,怎么弄?
List<Orders>.get(x).goods应该能获取到吧。
List<Orders>.get(x).goods应该能获取到吧。可以的,
Set<Goods> sgoods = new HashSet<Goods>();
List<Orders> list_o = query.list();
System.out.println(list_o.size());
System.out.println(list_o.get(0).getGoods()); // add
sgoods.addAll(list_o.get(0).getGoods());
System.out.println(sgoods.size());
return (HashSet<Goods>) sgoods;后台打印结果:
[com.ccit.bean.Goods@2, com.ccit.bean.Goods@5, com.ccit.bean.Goods@7, com.ccit.bean.Goods@8, com.ccit.bean.Goods@9]
5
怎么样遍历HashSet<Goods>) ?用iterator?
List<Orders>.get(x).goods应该能获取到吧。可以的,
Set<Goods> sgoods = new HashSet<Goods>();
List<Orders> list_o = query.list();
System.out.println(list_o.size());
System.out.println(list_o.get(0).getGoods()); // add
sgoods.addAll(list_o.get(0).getGoods());
System.out.println(sgoods.size());
return (HashSet<Goods>) sgoods;后台打印结果:
[com.ccit.bean.Goods@2, com.ccit.bean.Goods@5, com.ccit.bean.Goods@7, com.ccit.bean.Goods@8, com.ccit.bean.Goods@9]
5
怎么样遍历HashSet<Goods>) ?用iterator?
s随便了,iterator,for都可以。
for (Goods good : sgoods) {
System.out.println(good.getxxx);
}
List<Orders>.get(x).goods应该能获取到吧。可以的,
Set<Goods> sgoods = new HashSet<Goods>();
List<Orders> list_o = query.list();
System.out.println(list_o.size());
System.out.println(list_o.get(0).getGoods()); // add
sgoods.addAll(list_o.get(0).getGoods());
System.out.println(sgoods.size());
return (HashSet<Goods>) sgoods;后台打印结果:
[com.ccit.bean.Goods@2, com.ccit.bean.Goods@5, com.ccit.bean.Goods@7, com.ccit.bean.Goods@8, com.ccit.bean.Goods@9]
5
怎么样遍历HashSet<Goods>) ?用iterator?
s随便了,iterator,for都可以。
for (Goods good : sgoods) {
System.out.println(good.getxxx);
}
List<Goods> order_goods_list = new ArrayList<Goods>();
for (Goods good : sgoods) {
System.out.println(good.getGoodsNumber());
order_goods_list.add(good);
}
System.out.println(order_goods_list.size());
return order_goods_list;
我在jsp页面去 取order_goods_list内容,怎么取出的是5个空白的记录?那里出错了?求解?