我用一個HQL查詢得到一束狀態的對象,像這樣:使用cfqueryparam用ColdFusion的HQL查詢
<cfquery name="LOCAL.qStates" dbtype="hql">
from States where countryID = #ARGUMENTS.countryID#
order by name asc
</cfquery>
這工作得很好。不過,我從小就很好,我想用cfqueryparam
,理想像這樣:
<cfquery name="LOCAL.qStates" dbtype="hql">
from States
where countryID = <cfqueryparam cfsqltype="cf_sql_integer" value="#ARGUMENTS.countryID#" />
order by name asc
</cfquery>
但是,這將引發一個錯誤:
[empty string] java.lang.NullPointerException at org.hibernate.impl.AbstractQueryImpl.verifyParameters(AbstractQueryImpl.java:353) at org.hibernate.impl.AbstractQueryImpl.verifyParameters(AbstractQueryImpl.java:323) at org.hibernate.impl.QueryImpl.list(QueryImpl.java:98) at coldfusion.orm.hibernate.HibernatePersistenceManager._executeHQL(HibernatePersistenceManager.java:822) at coldfusion.orm.hibernate.HibernatePersistenceManager.executeHQL(HibernatePersistenceManager.java:751) at ....
任何人都知道如何解決這個問題,並使用cfqueryparam
與cfquery
HQL查詢?
在此先感謝!
我實際上想要使用'cfquery'。這個答案意味着我回到了'ORMExecuteQuery()'這不是我想要的。 – 2010-11-11 13:43:20
@ciaran - 你爲什麼要使用cfquery?你把orm當作sql抽象層嗎?如果是的話,你是錯過了一些/大部分的權力 – Antony 2010-11-11 22:59:02
@Antony:主要原因是我不必做醜陋的字符串連接,並可以編寫多行可讀的語句! :) – 2010-11-12 20:16:17