|
Hi, I am using the below code to retrieve user
details from a table: <select id="searchUser" parameterClass="searchCriteria" resultClass="searchCriteria" resultMap="userMap2"> select * from USR_BASIC_INFO <dynamic prepend="where"> <iterate property="userlist" conjunction="or"> USR_ID=#userlist[]# and( <isParameterPresent> <isEqual property="operator" compareValue="and"> <isNotNull prepend="and" property="username" removeFirstPrepend="true"> USR_NAME=#username# </isNotNull> <isNotNull prepend="and" property="phonenumber" removeFirstPrepend="true"> PHONE_NUMBER=#phonenumber# </isNotNull> </isEqual> </isParameterPresent> <isParameterPresent> <isEqual property="operator" compareValue="or"> <isNotNull prepend="or" property="username" removeFirstPrepend="true"> USR_NAME=#username# </isNotNull> <isNotNull prepend="or" property="phonenumber" removeFirstPrepend="true"> PHONE_NUMBER=#phonenumber# </isNotNull> </isEqual> </isParameterPresent> )
</iterate> </dynamic> </select> But during execution,
I am getting the following error, i.e “and” is appended twice: select
* from USR_BASIC_INFO where
USR_ID=?
and( USR_NAME=?
and
PHONE_NUMBER=? )
or USR_ID=? and(
and
USR_NAME=? and
PHONE_NUMBER=? )
or USR_ID=?
and( and
USR_NAME=? and
PHONE_NUMBER=? )
or USR_ID=?
and( and
USR_NAME=? and
PHONE_NUMBER=? )
. Can you please
tell how the query is to be written? Regards, Rohini
|
