ibatis-user-java mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Anoop kumar V <anoopkum...@gmail.com>
Subject Re: Newbie question: Update table that has no key / id
Date Tue, 25 Aug 2009 20:21:37 GMT
Yes - true, but in this case I would have had to use something like p6spy.
Also I am integrating iBatis with a COTS application that does not use log4j
or something similar.

I could not find much searching for an alternative configuration (without
log4j) to log ibatis sql statements etc..

Thanks,
Anoop


On Tue, Aug 25, 2009 at 3:54 PM, Rick <rickcr@gmail.com> wrote:

> 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 <anoopkumarv@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 <anoopkumarv@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 <rickcr@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 <anoopkumarv@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 <rickcr@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 <
>>>>>> anoopkumarv@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 <
>>>>>>> anoopkumarv@gmail.com> wrote:
>>>>>>>
>>>>>>>> I understand. Thank you very much.
>>>>>>>>
>>>>>>>> -Anoop
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> On Mon, Aug 24, 2009 at 9:20 AM, Larry Meadors <
>>>>>>>> larry.meadors@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<
>>>>>>>>> anoopkumarv@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.meadors@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-unsubscribe@ibatis.apache.org
>>>>>>>>> >> For additional commands, e-mail:
>>>>>>>>> user-java-help@ibatis.apache.org
>>>>>>>>> >>
>>>>>>>>> >>
>>>>>>>>> >
>>>>>>>>> >
>>>>>>>>> > --
>>>>>>>>> >
>>>>>>>>> > Thanks,
>>>>>>>>> > Anoop
>>>>>>>>> >
>>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> Rick R
>>>>>>
>>>>>
>>>>>
>>>>
>>>>
>>>> --
>>>> Rick R
>>>>
>>>
>>>
>>
>
>
> --
> Rick R
>

Mime
View raw message