On Wed, Aug 03, 2005 at 01:25:47PM +0300, Eugeny N Dzhurinsky wrote:
> On Wed, Aug 03, 2005 at 10:40:46AM +0100, James, Steven wrote:
> > did you try it and what were the errors..
> for now I'm trying to play with this query.
And finally that's it:
d="dynamicGetRule" resultClass="com.greenvalley.TMS.MML.Entity.Rule">
select distinct r.rule_id,r.name,r.description from rule r left join
rule_field rf
on r.rule_id = rf.rule_id
<dynamic prepend=" WHERE ">
<isNotNull prepend=" AND " property="name"> r.name like #name# </isNotNull>
<isNotNull prepend=" OR " property="description"> r.description like
#description# </isNotNull>
<iterate prepend="AND" property="fields"
open="(" close=")" conjunction="OR">
rf.name like #fields[].name# and rf.value like
#fields[].value#
</iterate>
</dynamic>
order by name limit #offset#,#limit#</statement>
I created the new bean to keep the information about the field. It seems to
work fine, but
I cant make the
<isNotNull property="fields[].name">
iBATIS complains about
com.ibatis.common.jdbc.exception.NestedSQLException:
--- The error occurred in iBATIS/Rule.xml.
--- The error occurred while preparing the mapped statement for execution.
--- Check the dynamicGetRule.
--- Check the parameter map.
--- Cause: com.ibatis.common.beans.ProbeException: Error getting ordinal list
from JavaBean. Cause java.lang.NumberFormatException: For input string: ""
Caused by: java.lang.NumberFormatException: For input string: ""
Caused by: com.ibatis.common.beans.ProbeException: Error getting ordinal list
from JavaBean. Cause java.lang.NumberFormatException: For input string: ""
Caused by: java.lang.NumberFormatException: For input string: ""
at
com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.executeQueryWithCallback(GeneralStatement.java:188)
at
com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.executeQueryForList(GeneralStatement.java:123)
at
com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForList(SqlMapExecutorDelegate.java:610)
at
com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForList(SqlMapExecutorDelegate.java:584)
Caused by: java.lang.NumberFormatException: For input string: ""
at
com.ibatis.common.beans.BaseProbe.getIndexedProperty(BaseProbe.java:80)
at
com.ibatis.common.beans.ComplexBeanProbe.getProperty(ComplexBeanProbe.java:297)
at
com.ibatis.common.beans.ComplexBeanProbe.getObject(ComplexBeanProbe.java:188)
at com.ibatis.common.beans.GenericProbe.getObject(GenericProbe.java:57)
at
com.ibatis.sqlmap.engine.mapping.sql.dynamic.elements.IsNullTagHandler.isCondition(IsNullTagHandler.java:32)
at
com.ibatis.sqlmap.engine.mapping.sql.dynamic.elements.IsNotNullTagHandler.isCondition(IsNotNullTagHandler.java:21)
at
com.ibatis.sqlmap.engine.mapping.sql.dynamic.elements.ConditionalTagHandler.doStartFragment(ConditionalTagHandler.java:43)
at
com.ibatis.sqlmap.engine.mapping.sql.dynamic.DynamicSql.processBodyChildren(DynamicSql.java:157)
at
com.ibatis.sqlmap.engine.mapping.sql.dynamic.DynamicSql.processBodyChildren(DynamicSql.java:160)
at
com.ibatis.sqlmap.engine.mapping.sql.dynamic.DynamicSql.processBodyChildren(DynamicSql.java:160)
at
com.ibatis.sqlmap.engine.mapping.sql.dynamic.DynamicSql.processBodyChildren(DynamicSql.java:99)
at
com.ibatis.sqlmap.engine.mapping.sql.dynamic.DynamicSql.process(DynamicSql.java:79)
at
com.ibatis.sqlmap.engine.mapping.sql.dynamic.DynamicSql.getParameterMap(DynamicSql.java:61)
at
com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.executeQueryWithCallback(GeneralStatement.java:156)
... 21 more
--
Eugene N Dzhurinsky