hibernate一对多双向配置后查询多的一方总查不出来
活动和参与活动的关系
active实体类
public class Active
{
private Long activeId;//活动标识id
private String activeName;//活动名称
private Long publishUserId;//发布活动者id
private Set<Attend> attends;//存放attend
set和get
}
attend实体类
public class Attend
{
private Long id;
private Long userId;//参与活动的用户id
private Active active;//发布心愿者id
private String flag;//是否感兴趣
private Date time;//是否参加
private String contact;//参与活动的联系方式
set和get
}
映射文件
active映射文件
<set name="attends" inverse="true" cascade="save-update">
<key>
<column name="activeId"></column>
</key>
<one-to-many class="com.meetxyt.domain.active.entity.Attend" />
</set> 
attend映射文件
<many-to-one name="active" column="activeId" class="com.meetxyt.domain.active.entity.Active" cascade="save-update" fetch="join" ></many-to-one>
以上是配置和实体类,我在dao层查询时的hql语句是
String hql="from Attend";
Session session = sessionFactory.openSession();
Query query = session.createQuery(hql);
List<Attend> list = query.list();
hibernate&nbsp;一对多

解决方案 »

  1.   

    List list = getSession.createQuery(hql).list
    试试
      

  2.   

    List list = getSession.createQuery(hql).list();
      

  3.   

    还是不行
    select
            attend0_.ID as ID4_,
            attend0_.userId as userId4_,
            attend0_.flag as flag4_,
            attend0_.time as time4_,
            attend0_.contact as contact4_,
            attend0_.activeId as activeId4_ 
        from
            a_attend attend0_
    2013-10-08 21:07:57,418 [INFO] - 查询活动表,我发布的
    null
    sql语句都出来了,但是查出来的值为空,数据库里明明有值
      

  4.   


    from Active a left join a.attends
      

  5.   

    Hibernate: 
        select
            active0_.activeId as activeId3_0_,
            attends1_.ID as ID4_1_,
            active0_.activeName as activeName3_0_,
            active0_.publishUserId as publishU3_3_0_,
            active0_.activeStyleId as activeSt4_3_0_,
            active0_.title as title3_0_,
            active0_.costStyle as costStyle3_0_,
            active0_.content as content3_0_,
            active0_.imageName as imageName3_0_,
            active0_.maxPerson as maxPerson3_0_,
            active0_.startTime as startTime3_0_,
            active0_.publicTime as publicTime3_0_,
            active0_.endTime as endTime3_0_,
            active0_.place as place3_0_,
            active0_.phone as phone3_0_,
            active0_.discussCount as discuss15_3_0_,
            active0_.interestedCount as interes16_3_0_,
            attends1_.userId as userId4_1_,
            attends1_.flag as flag4_1_,
            attends1_.time as time4_1_,
            attends1_.contact as contact4_1_,
            attends1_.activeId as activeId4_1_ 
        from
            A_Active active0_ 
        left outer join
            a_attend attends1_ 
                on active0_.activeId=attends1_.activeId
    Hibernate: 
        select
            attends0_.activeId as activeId1_,
            attends0_.ID as ID1_,
            attends0_.ID as ID4_0_,
            attends0_.userId as userId4_0_,
            attends0_.flag as flag4_0_,
            attends0_.time as time4_0_,
            attends0_.contact as contact4_0_,
            attends0_.activeId as activeId4_0_ 
        from
            a_attend attends0_ 
        where
            attends0_.activeId=?
    Hibernate: 
        select
            attends0_.activeId as activeId1_,
            attends0_.ID as ID1_,
            attends0_.ID as ID4_0_,
            attends0_.userId as userId4_0_,
            attends0_.flag as flag4_0_,
            attends0_.time as time4_0_,
            attends0_.contact as contact4_0_,
            attends0_.activeId as activeId4_0_ 
        from
            a_attend attends0_ 
        where
            attends0_.activeId=?
    Hibernate: 
        select
            attends0_.activeId as activeId1_,
            attends0_.ID as ID1_,
            attends0_.ID as ID4_0_,
            attends0_.userId as userId4_0_,
            attends0_.flag as flag4_0_,
            attends0_.time as time4_0_,
            attends0_.contact as contact4_0_,
            attends0_.activeId as activeId4_0_ 
        from
            a_attend attends0_ 
        where
            attends0_.activeId=?
    Hibernate: 
        select
            attends0_.activeId as activeId1_,
            attends0_.ID as ID1_,
            attends0_.ID as ID4_0_,
            attends0_.userId as userId4_0_,
            attends0_.flag as flag4_0_,
            attends0_.time as time4_0_,
            attends0_.contact as contact4_0_,
            attends0_.activeId as activeId4_0_ 
        from
            a_attend attends0_ 
        where
            attends0_.activeId=?
    Hibernate: 
        select
            attends0_.activeId as activeId1_,
            attends0_.ID as ID1_,
            attends0_.ID as ID4_0_,
            attends0_.userId as userId4_0_,
            attends0_.flag as flag4_0_,
            attends0_.time as time4_0_,
            attends0_.contact as contact4_0_,
            attends0_.activeId as activeId4_0_ 
        from
            a_attend attends0_ 
        where
            attends0_.activeId=?
    2013-10-08 21:45:48,015 [INFO] - 查询活动表,我发布的