2012-08-07 57 views
0

我有幾個使用註釋映射到數據庫的對象類,並且需要一些幫助來解決如何將Hibernate查詢放在一起以獲得我想要的結果。如何在Hibernate中執行這樣的查詢?加入

我正在使用Hibernate 3.6.5。我一直在使用標準,但如果它的工作滿意查詢等!

我是Hibernate的新手(可以管理簡單的Criteria按屬性過濾對象,但連接的東西都是新的),所以在答案(或建議閱讀)中的任何解釋都會很好。

RawRead有一個包含字符串的標記代碼字段。 Checkpoint,IncidentItem和Guard類都有一個TagCode屬性。

我想檢索所有RawRead對象,其中的TagCode與任何其他類(IncidentItem,Guard,Checkpoint)中的任何標記代碼值都不匹配。

一類的傾吐心事/僞SQL代碼:

select raw.* from 
    RAWREADS raw, checkpoints c, GUARDS g, INCIDENTITEMS i 
    where 
    raw.tagcode != c.TAGNO 
    and raw.TAGCODE != g.IDTAG 
    and raw.TAGCODE != i.IDTAG; 

我認識到,不會是有效的等等,只是我的想法的說明。

你可以建議在Hibernate語言中看什麼?

EDIT /加法: 的RawRead對象被映射到保護和檢查點(具有屬性調用檢驗點和一個稱爲防護件是這些類的兩個實例 - 兩者都是@ManyToOne)。

IncidentItem沒有任何映射到其他類。

回答

2

爲了在HQL中連接對象,必須在應用程序級別的註釋中在它們之間映射關係。如果沒有映射關係,則需要在普通SQL中執行像這樣的查詢。

+0

感謝感謝,我將努力爭取SQL。這些類之間有一個部分映射(添加到我的問題上面),但並非全部映射。 所以很可能在SQL中完成所有操作而不是一些HQL和一些SQL。 – DaFoot 2012-08-08 10:00:50