Я использую запрос 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'. Это означает, что я вернулся к ysing 'ORMExecuteQuery()', который не то, что я хочу. –
@ciaran - почему вы хотите использовать cfquery? вы рассматриваете orm как уровень абстракции sql? если это так, вам не хватает какой-либо/большей мощности – Antony
@Antony: Основная причина в том, что мне не нужно делать уродливую конкатенацию строк и писать многострочные операторы, которые читаемы! :) –