Definitely do what Nathan said and output the generated sql. That will let
you catch these issues much sooner.


On Tue, Aug 25, 2009 at 3:25 PM, Anoop kumar V <anoopkum...@gmail.com>wrote:

> Yes - that was it. It is all working great now. not a single issue with
> this..
>
> thank you so much for all your help and I know I just needed to be more
> careful with my typos...
>
> Thanks,
> Anoop
>
>
>
> On Tue, Aug 25, 2009 at 3:18 PM, Anoop kumar V <anoopkum...@gmail.com>wrote:
>
>> Oops - that is a big typo. I really need to be more careful. Let me set
>> that right and test again.
>>
>> Thanks,
>> Anoop
>>
>>
>>
>> On Tue, Aug 25, 2009 at 3:02 PM, Rick <ric...@gmail.com> wrote:
>>
>>> no clue what your table looks like but this doesn't seem right: iamsId
>>> for both?
>>>
>>> where
>>>             iams_id = #old.iamsId:VARCHAR#
>>>             //....
>>>             and isactive=#old.iamsId:VARCHAR#
>>>
>>>
>>>
>>> On Tue, Aug 25, 2009 at 2:29 PM, Anoop kumar V <anoopkum...@gmail.com>wrote:
>>>
>>>> Hi Rick,
>>>>
>>>> yes that was one of the typos in my earlier email, but I have corrected
>>>> that among other stuff (embarassing)!! My last email was also copy paste
>>>> from my sqlmap and does not have that issue... My question is about the
>>>> syntax to access a an attribute of an object that is passed as a value of
>>>> map.
>>>>
>>>> Thanks,
>>>> Anoop
>>>>
>>>>
>>>>
>>>> On Tue, Aug 25, 2009 at 2:16 PM, Rick <ric...@gmail.com> wrote:
>>>>
>>>>> Was that copy and paste? I think you want "new.divisionName" now
>>>>> "newdivisionName" (assuming "new" is the key)
>>>>>
>>>>>
>>>>> On Tue, Aug 25, 2009 at 11:40 AM, Anoop kumar V <anoopkum...@gmail.com
>>>>> > wrote:
>>>>>
>>>>>> Hi Larry,
>>>>>>
>>>>>> Was wondering if you could help me clarify one thing more...
>>>>>>
>>>>>> I have my sqlmap as below:
>>>>>>
>>>>>> <update id="updateUserApprover" parameterClass="java.util.Map">
>>>>>>     update user_approvers
>>>>>>             set iams_id = #new.iamsId:VARCHAR#,
>>>>>>             set region_name = #new.regionName:VARCHAR#,
>>>>>>             division_name = #newdivisionName:VARCHAR#,
>>>>>>             isactive = #new.isActive:VARCHAR#
>>>>>>     where iams_id = #old.iamsId:VARCHAR#
>>>>>>     and region_name = #old.regionName:VARCHAR#
>>>>>>     and division_name=#old.divisionName:VARCHAR#
>>>>>>     and isactive=#old.iamsId:VARCHAR#
>>>>>>   </update>
>>>>>>
>>>>>> I am passing a map that has 2 objects which is coming from my bean,
>>>>>> the keys are "old" and "new" and each have a userApprover object as the
>>>>>> value.
>>>>>> Map<String, UserApprover> param = new HashMap<String, UserApprover>();
>>>>>>
>>>>>> So when I put: #new.iamsId:VARCHAR# will the sqlmap be able to
>>>>>> understand that it needs to go inside the map and pull the property from 
>>>>>> the
>>>>>> bean?
>>>>>>
>>>>>> I am getting the following error when I use it this way:
>>>>>>
>>>>>> 09/08/25 11:29:40 com.ibatis.common.jdbc.exception.NestedSQLException:
>>>>>> --- The error occurred in sqlmap/userapprover_sqlMap.xml.
>>>>>> --- The error occurred while applying a parameter map.
>>>>>> --- Check the updateUserApprover-InlineParameterMap.
>>>>>> --- Check the statement (update failed).
>>>>>> --- Cause: java.sql.SQLException: ORA-01747: invalid
>>>>>> user.table.column, table.column, or column specification
>>>>>>
>>>>>> The other way is that I can completely forget about my bean and just
>>>>>> put everything into my map as <String, String>, but I dont think that is 
>>>>>> a
>>>>>> very nice thing to do... any suggestions please?
>>>>>>
>>>>>> Thanks,
>>>>>> Anoop
>>>>>>
>>>>>>
>>>>>> On Mon, Aug 24, 2009 at 10:02 AM, Anoop kumar V <
>>>>>> anoopkum...@gmail.com> wrote:
>>>>>>
>>>>>>> I understand. Thank you very much.
>>>>>>>
>>>>>>> -Anoop
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> On Mon, Aug 24, 2009 at 9:20 AM, Larry Meadors <
>>>>>>> larry.mead...@gmail.com> wrote:
>>>>>>>
>>>>>>>> Not if those values can change.
>>>>>>>>
>>>>>>>> If they are immutable, then that makes it easier, because you can
>>>>>>>> update based on them.
>>>>>>>>
>>>>>>>> Larry
>>>>>>>>
>>>>>>>>
>>>>>>>> On Mon, Aug 24, 2009 at 7:10 AM, Anoop kumar V<
>>>>>>>> anoopkum...@gmail.com> wrote:
>>>>>>>> > Thanks Larry. I think your suggestion will work, but I was hoping
>>>>>>>> > there was an ibatis way of handling this - or that I could use the
>>>>>>>> > database specific rownum or something similar.
>>>>>>>> >
>>>>>>>> > Would it make a big difference if the table had a composite key,
>>>>>>>> such
>>>>>>>> > that no 2 rows have exactly the same column values?
>>>>>>>> >
>>>>>>>> > Thanks again,
>>>>>>>> > Anoop
>>>>>>>> >
>>>>>>>> > On 8/23/09, Larry Meadors <larry.mead...@gmail.com> wrote:
>>>>>>>> >> You can do it a few ways, I think I'd put the old values and new
>>>>>>>> >> values in a bean, then put those beans in a map and call them
>>>>>>>> "old"
>>>>>>>> >> and "new".
>>>>>>>> >>
>>>>>>>> >> Pass that map to the update and change it to this:
>>>>>>>> >>
>>>>>>>> >>   <update id="updateUserApprover">
>>>>>>>> >>     update user_approvers set region_name = #new.region:VARCHAR#,
>>>>>>>> >>                       division_name = #new.division:VARCHAR#,
>>>>>>>> >>     where user = #old.user:VARCHAR#
>>>>>>>> >>     and region = #old.region:VARCHAR#
>>>>>>>> >>     and division=#old.division:VARCHAR#
>>>>>>>> >>   </update>
>>>>>>>> >>
>>>>>>>> >> Larry
>>>>>>>> >>
>>>>>>>> >>
>>>>>>>> ---------------------------------------------------------------------
>>>>>>>> >> To unsubscribe, e-mail: user-java-unsubscr...@ibatis.apache.org
>>>>>>>> >> For additional commands, e-mail:
>>>>>>>> user-java-h...@ibatis.apache.org
>>>>>>>> >>
>>>>>>>> >>
>>>>>>>> >
>>>>>>>> >
>>>>>>>> > --
>>>>>>>> >
>>>>>>>> > Thanks,
>>>>>>>> > Anoop
>>>>>>>> >
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> Rick R
>>>>>
>>>>
>>>>
>>>
>>>
>>> --
>>> Rick R
>>>
>>
>>
>


-- 
Rick R

Reply via email to