2016-03-02 72 views
0

我們最近將Hibernate版本從3.1升級到4.3.1,以供我們的應用程序使用。我面臨一個奇怪的問題,錯誤和同一個對象總是與結果對象關聯。包含相同對象的Hibernate條件返回列表

我有一個ClinicalStudyEvent類,其中包含EventFormContext類的集合。當我嘗試使用HQL基於eventId獲取ClinicalStudyEvent時,hibernate將EventFormContext的同一對象與結果對象關聯起來。每個eventid都有相同的集合對象。

ClinicalStudyEvent

public class ClinicalStudyEvent implements 
     Comparable<ClinicalStudyEvent> 
{ 
..... 
private Set<EventFormContext> eventFormContexts = new LinkedHashSet<EventFormContext>(); 
...... 
} 

EventFormContext:

public class EventFormContext extends CSFormContext 
{ 
.... 
private ClinicalStudyEvent clinicalStudyEvent; 
.... 
} 

的Hibernate映射:

ClinicalStudyEvent

 <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> 

對於我們正在EventFormContext類的同一對象的每ClinicalStudyEvent類。

我也通過更改show_sql參數來檢查sql,該參數也是正確的。 我檢查了數據庫,所有三個類的表都有主鍵。

任何指針都會有幫助。

+0

你可以發佈你用來獲取數據的HQL嗎? – Pras

回答

相關問題