2012-03-15 2 views
0

CF ORM으로 다음을 수행하려면 어떻게해야합니까? 나는이 정직 확신하지만이 작업을 수행하는 방법을 작동하지 않을 수 Invalid construct: Either argument or name is missing. When using named parameters to a function, each parameter must have a name.CF ORM - IN 절을 사용하는 EntityLoad filterCriteria

.. :

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

나는 .. 점점 오류를

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

그러나 기쁨 시도 , 샘플이나 문서를 찾을 수 없습니다.

많은 분들께 미리 감사드립니다.

답변

5

HQL을 사용해야합니다. 다음과 같이 표시됩니다.

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

cfqueryparam과 비슷한 쿼리를 매개 변수화 할 수도 있습니다.

+0

감사합니다. Sam .. 트릭을 했어! – Jason

+0

@SamFarmer 어떻게 매개 변수화 된 것으로 보입니까? ormExecuteQuery ("제품 ID WHERE id IN (': list_here'), {list_here = productIDlist}); ? 비슷한 것을 시도하고 있지만 오류가 계속 발생합니다. – TekiusFanatikus

1

HQL을 사용하려면 이 필요하지 않으며 criteria을 사용할 수도 있습니다. 솔직하게 말해서, HQL과 일반 SQL을 함께 사용하는 것이별로 도움이되지 않지만 조건은 다른 구문 분석 된 언어가 아닌 강력하고 유연한 API입니다.

+0

조쉬, 팁 주셔서 감사합니다. 나는 HQL에 대해 조금 읽었습니다. ormExecuteQuery를 통해이를 실행하면 Hibernate에서 Entity를 통해 데이터를 가져오고 모든 이점을 얻을 수 있습니다. 일반 SQL은 DB에 직접 액세스합니다. 나는 당신이 게시 한 '기준'링크를 읽었습니다. 흥미 롭습니다 ... 더 많은 독서를 할 것이지만,이 시점에서 나는 너무 관여하지 않고 어떻게 현재의 목표를 달성 할 수 있는지 보지 못했습니다. 더 많은 독서를 할 것입니다. 그 생각에 나는 생각한다. 감사! – Jason