日期:2014-05-18  浏览次数:20600 次

hibernate双向一对多查不到多的一方
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;一对多

------解决方案--------------------

from Active a left join a.attends