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 >