2012-03-02 23 views
0

我正在使用hibernate。我需要動態添加where條件。我發送字符串列表。
select * from employee如何在上述場景中使用命名參數?

現在我需要添加where條件爲:
select * from employee where name like :somename or name like:othername

這裏somenameothername是命名參數。值從字符串列表中設置。
在這種情況下,列表可以包含兩個字符串,因此可以設置兩個命名參數的值。

如何爲命名參數使用名稱?

現在我正在使用兩個命名參數的字符串列表並設置它們的值。
問題是使用命名參數的限制很少。

命名參數不應包含特殊字符( - ,/和空格)。同時命名參數不應超過30個字符

如果我的字符串列表具有上述特殊字符或其長度超過30個字符的任何名稱,那麼如果將這樣的字符串用作命名參數,則會引發異常。

如何爲列表中的每個字符串使用命名參數?

+0

你的問題是文本的不可讀的牆。試着打破它,讓人們真的想要閱讀它。 – skaffman 2012-03-02 12:38:47

回答

0

您是否嘗試過使用標準的API http://docs.jboss.org/hibernate/orm/3.3/reference/en/html/querycriteria.html

與一堆「其中」不應該有標準API一萬阿英,蔣達清好選擇.. 只是關心LIKE%

,並檢查了這一點,並告訴我你是否需要更多細節。 http://www.javalobby.org/articles/hibernatequery102/

+0

你好,我希望你回覆。這裏以我提到的簡單員工查詢爲例。但實際的查詢太複雜,我不能使用條件,並且必須使用原生的sql查詢。 – user1016403 2012-03-02 13:03:04

+0

我已經編輯我的回答,請 – Darwly 2012-03-02 13:59:04

+0

喜darwly,thanx的烏拉圭回合的答覆。該鏈接提到了標準。但我必須使用本機SQL。我唯一的問題是,在這裏我必須使用哪些名稱作爲命名參數?感謝名單。 – user1016403 2012-03-02 14:41:46

相關問題