2012-03-15 47 views
0

如何使用CF ORM執行以下操作?CF ORM - 使用IN子句的EntityLoad filterCriteria

SELECT * FROM products WHERE id in ('3,7,12,5'); 

我試圖

EntityLoad("products", { id in ('#productIDlist#') }); 

,但沒有喜悅..收到錯誤:Invalid construct: Either argument or name is missing. When using named parameters to a function, each parameter must have a name.

。我敢肯定這是直截​​了當的,但我不能工作了如何做到這一點,並找不到任何樣本或文檔。

很多預先感謝。

回答

5

您需要使用HQL。它看起來像:

ormExecuteQuery("FROM products WHERE id IN ('#productIDlist#') "); 

您還可以使用參數化查詢(類似於cfqueryparam)。

+0

謝謝薩姆..做到了! – Jason 2012-03-16 01:44:14

+0

@SamFarmer它如何看起來參數化? ormExecuteQuery(「FROM products WHERE id IN(':list_here')」,{list_here = productIDlist}); ?我正在嘗試類似的東西,但我不斷收到錯誤。 – TekiusFanatikus 2015-05-14 11:34:32

1

你不需要需要使用HQL,你也可以使用criteria。坦率地說,我認爲使用HQL和普通SQL沒有太大的優勢,但是標準是一個功能強大,靈活的API,而不是另一種解析語言。

+0

喬希,謝謝你的提示。我在HQL上做了一些閱讀。通過ormExecuteQuery來運行它通過Hibernate中的實體獲得數據,並帶來了所有的好處。普通SQL只是直接訪問數據庫。我讀了一篇關於你發佈的'標準'鏈接..有趣的..會做更多的閱讀,但在這一點上,我不明白它會如何實現目前的目標,沒有太多參與..會做更多的閱讀儘管我想。謝謝! – Jason 2012-03-16 01:46:23