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