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对象查询

解决方案 »

  1.   

    如果你的映射文件都做好了
    from Orders where order_id=?
      

  2.   

    select new xx() from order_goods og, t_goods g 
      

  3.   

    当然,按照你那样的写法,你这两个表肯定存在一定的关系,一对一,一对多等等,这样的话,在配置文件内配置一下应该可以吧。
    我的映射:
    @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信息,怎么弄?
      

  4.   

    这个取到的是:List<Orders>集合,我想用List<Orders>取到他说关联的Goods 信息,怎么办?
      

  5.   

    这个取到的是:List<Orders>集合,我想用List<Orders>取到他说关联的Goods 信息,怎么办?
    List<Orders>.get(x).goods应该能获取到吧。
      

  6.   

    这个取到的是:List<Orders>集合,我想用List<Orders>取到他说关联的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?

      

  7.   

    这个取到的是:List<Orders>集合,我想用List<Orders>取到他说关联的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?

    s随便了,iterator,for都可以。
    for (Goods good : sgoods) {  
          System.out.println(good.getxxx);  
    }  
      

  8.   

    这个取到的是:List<Orders>集合,我想用List<Orders>取到他说关联的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?

    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个空白的记录?那里出错了?求解?