2011-08-10 69 views
1

如果我有一類結構如下所示(註釋去掉):如何用Hibernate註釋有條件地映射集合?

public class Person { 
    String store; 

    Swatch swatch; 

    Collection<Paint> paints; 
} 

public class Swatch { 
    String color; 
} 

public class Paint { 
    String color; 

    String store; 
} 

店是從來沒有空,是人與塗料之間使用的密鑰。我們的目標是將所有Paint記錄與具有與Person相同商店的Swatch相同的顏色進行匹配。但是,Swatch可能爲null,或者其顏色屬性可能爲null(在兩種情況下都會返回與Person具有相同商店的所有Paints)。

是否有JPA或Hibernate基於註解,將構建在油漆收集此查詢?

+0

這聽起來更像是您應該構建的查詢的工作。 –

回答

0

我認爲,這要麼是與Hibernate的註解不可能的或者只是不很明顯。

我的解決方案是相當的hackish:對的人,我有哪些程序過濾油漆瞬態批註的方法。不太理想,因爲它可能會強制執行額外的查詢來獲取Swatch實體。

我不會記住這是正確的,因爲我認爲雷諾的Vineet的回答創建一個查詢,可能是最合理的在我介紹的情況。但是,由於我認爲與我的示例無關的未提到的因素,因此在我的實際情況下查詢更難實施,並提及它們會增加顯着的複雜性。