解决方案 »

  1.   

    提出来你Hibernate的配置文件  要看你映射是否正确
      

  2.   

    你在配置关联的时候都延迟加载了,fetch=FetchType.LAZY这个就是延迟加载.你要调用getMealOrders才会去查询
      

  3.   


    @Override
    public User FindUserByid(Long id) {
    Session session = sessionFactory.openSession();
    org.hibernate.Query query = session
    .createQuery("from User as u where u.id=?");
    query.setParameter(0, id);
    User u = (User) query.list().get(0);
    Set<MealOrder> os = u.getMealOrders();
    os.size();
    return u;
    }现在os就是通过这种方式拿出来的,size为2,可是数据是不是依旧为空?
      

  4.   

    select
            user0_.ID as ID1_1_0_,
            mealorders1_.ID as ID1_0_1_,
            user0_.cleartextPassword as cleartex2_1_0_,
            user0_.createTime as createTi3_1_0_,
            user0_.email as email4_1_0_,
            user0_.lastEditTime as lastEdit5_1_0_,
            user0_.lastLoginIP as lastLogi6_1_0_,
            user0_.loginCount as loginCou7_1_0_,
            user0_.loginname as loginnam8_1_0_,
            user0_.onlineTime as onlineTi9_1_0_,
            user0_.passwordEditTime as passwor10_1_0_,
            user0_.postion as postion11_1_0_,
            user0_.telePhone as telePho12_1_0_,
            user0_.userLocation as userLoc13_1_0_,
            user0_.userName as userNam14_1_0_,
            user0_.userPassword as userPas15_1_0_,
            user0_.userState as userSta16_1_0_,
            mealorders1_.beginSupplyDate as beginSup2_0_1_,
            mealorders1_.beginSupplyTime as beginSup3_0_1_,
            mealorders1_.endSupplyDate as endSuppl4_0_1_,
            mealorders1_.endSupplyTime as endSuppl5_0_1_,
            mealorders1_.mealMenuID as mealMenu6_0_1_,
            mealorders1_.mealMenuName as mealMenu7_0_1_,
            mealorders1_.mealPackageID as mealPack8_0_1_,
            mealorders1_.mealPackageName as mealPack9_0_1_,
            mealorders1_.mealPackagePrice as mealPac10_0_1_,
            mealorders1_.orderState as orderSt11_0_1_,
            mealorders1_.orderTime as orderTi12_0_1_,
            mealorders1_.postion as postion13_0_1_,
            mealorders1_.restaurantID as restaur14_0_1_,
            mealorders1_.restaurantName as restaur15_0_1_,
            mealorders1_.supplyTimeType as supplyT16_0_1_,
            mealorders1_.telePhone as telePho17_0_1_,
            mealorders1_.UserID as UserID18_0_1_,
            mealorders1_.userID as userID18_0_1_,
            mealorders1_.userLocation as userLoc19_0_1_,
            mealorders1_.userName as userNam20_0_1_ 
        from
            UserBaseInfo user0_ 
        inner join
            MealOrder mealorders1_ 
                on user0_.ID=mealorders1_.UserID;
    通过生成的关联查询是可以查询出来数据的