Hibernate 休眠条件返回包含相同对象的列表

Hibernate 休眠条件返回包含相同对象的列表,hibernate,hibernate-mapping,Hibernate,Hibernate Mapping,我们最近将应用程序的hibernate版本从3.1升级到4.3.1。我面临一个奇怪的问题,错误的,同一个对象总是与结果对象关联 我有一个类ClinicalStudyEvent,它包含EventFormContext类的集合。当我尝试使用HQL根据eventId获取ClinicalStudyEvent时,hibernate正在将EventFormContext的同一对象与结果对象相关联。每个eventid都有相同的集合对象 课程 临床研究事件 public class ClinicalStudyE

我们最近将应用程序的hibernate版本从3.1升级到4.3.1。我面临一个奇怪的问题,错误的,同一个对象总是与结果对象关联

我有一个类ClinicalStudyEvent,它包含EventFormContext类的集合。当我尝试使用HQL根据eventId获取ClinicalStudyEvent时,hibernate正在将EventFormContext的同一对象与结果对象相关联。每个eventid都有相同的集合对象

课程

临床研究事件

public class ClinicalStudyEvent implements
        Comparable<ClinicalStudyEvent>
{
.....
private Set<EventFormContext> eventFormContexts = new   LinkedHashSet<EventFormContext>();
......
 }
     <set
        name="eventFormContexts"
        table="EVENT_FORM_CONTEXT"
        lazy="false"
        inverse="true"
        cascade="all"
        order-by="IDENTIFIER">
          <key column="CLINICAL_STUDY_EVENT_ID"/>
      <one-to-many class="edu.wustl.clinportal.domain.EventFormContext"/>
    </set>
休眠映射:

临床研究事件

public class ClinicalStudyEvent implements
        Comparable<ClinicalStudyEvent>
{
.....
private Set<EventFormContext> eventFormContexts = new   LinkedHashSet<EventFormContext>();
......
 }
     <set
        name="eventFormContexts"
        table="EVENT_FORM_CONTEXT"
        lazy="false"
        inverse="true"
        cascade="all"
        order-by="IDENTIFIER">
          <key column="CLINICAL_STUDY_EVENT_ID"/>
      <one-to-many class="edu.wustl.clinportal.domain.EventFormContext"/>
    </set>

CSFormContext

 <hibernate-mapping default-lazy="false">
   <class
    name="edu.wustl.clinportal.domain.CSFormContext"
    table="CS_FORM_CONTEXT"
    dynamic-update="false"
    dynamic-insert="false">
............
<joined-subclass
        name="edu.wustl.clinportal.domain.EventFormContext"
        table="EVENT_FORM_CONTEXT" >
        <key column="IDENTIFIER" />
......
<many-to-one 
    name="clinicalStudyEvent"
    class="edu.wustl.clinportal.domain.ClinicalStudyEvent" cascade="none"
    update="true" insert="true" column="CLINICAL_STUDY_EVENT_ID"  />

    </joined-subclass>
</class>

............
......

对于每个ClinicalStudyEvent类,我们都会得到相同的EventFormContext类对象

我还通过更改show_sql参数检查了sql,该参数也是正确的。 我检查了数据库,所有三个类的表都有主键


任何指针都会有帮助。

此查询中使用的类和hbm在


看起来像hibernate4.3中的一个bug,因为它没有添加连接子类的条件。我将lazy改为true,并在需要时显式获取对象,从而解决了这个问题。

您可以发布用于获取数据的HQL吗?