我們最近將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,該參數也是正確的。 我檢查了數據庫,所有三個類的表都有主鍵。
任何指針都會有幫助。
你可以發佈你用來獲取數據的HQL嗎? – Pras