2016-01-16 124 views
0

我是新來的休眠和尋找 a)解決方案 和b)在性能和查詢複雜性方面的解決方案比較。Hibernate在字符串數組中搜索

例實體 - (假設需要休眠註解)

Class Ent{ 
String name; 
List<String> alias; 
} 

我需要其可以搜索在單個數據庫中查詢字符串在名稱和別名陣列「示例」的解決方案。

我可以使用RAW與SQL進行休眠(select * ...)。有人會建議使用HQL,標準等一個更好的解決方案。與原因

+0

你試過HEL嗎? –

+0

我相信你想說HQL ..我試過使用HQL但面臨問題,因爲hibernate不支持SQL中的任何運算符。我正在與IN運營商合作。 – hImAnShU

回答

1

假設alias可以爲空:

select distinct e from Ent e left outer join e.alias a 
where e.name like :term or a.name like :term 

或:

select e from Ent e 
where e.name like :term 
or e.id in 
    (select e2.id from Ent e2 join e2.alias a where a.name like :term) 

我喜歡,因爲它的第二個選項應該更快(沒有distinct),因爲它可以更輕鬆地分頁結果。