Hm... if you were to register and commit object2, it would end up with a
different pk than o1 anyway, so comparing object id's in this case is
probably not what you want to do; it sounds like you're interested more
in whether o1 and o2 are equivalent, rather than if they "come from" the
same underlying db row. In which case, overriding "equals" and doing the
field comparison is probably what you want.
Robert
Arnaud Garcia wrote:
> thanks Andrus,
>
> Well, I can't do this....
> if o1 is in a dataContext, for example o1 is a child of O.
> if I build o2 from nothing, o2 = new o2(), o2.set ... ect..
> then if I do:
> system.out.println(o1.getObjectid()), I will have all the values of o1
> BUT
> a println of o2.getObjectid() return null !
>
> So to solve my problem, I did a simple fields comparison between the
> PK attributes of o1 and o2 and it works ... but I thought there was
> another way.
>
> thanks
> arnaud
>
>
> Andrus Adamchik a écrit :
>
>> getPrimaryKeys() in Cayenne is getObjectId()... So you can do
>> "o1.getObjectid().equals(o2.getObjectId())" comparison.
>>
>> Andrus
>>
>>
>> On Jan 31, 2006, at 12:25 PM, Arnaud Garcia wrote:
>>
>>> Hello,
>>>
>>> Is there a way to get all the primary keys attributes of a
>>> CayenneDataObject to compare it with another one?
>>>
>>> What I need to do:
>>> I have another xml datasource which sends some objects, and I need
>>> to compare these objects before adding them to another object (one
>>> to many relationship) ... so I need to compare them with their
>>> primary keys.
>>>
>>> if anObject.getPrimaryKeys().equal(maybeTheSameObject.getPrimaryKeys()
>>> then
>>> // do nothing
>>> else
>>> containerObject.addTo(anObject)
>>>
>>> => If I don't test the object before adding it, I have a violation
>>> constrainst ...
>>>
>>> thanks for help
>>>
>>> arnaud
>>>
>>>
>>>
>>
>>
>
This archive was generated by hypermail 2.0.0 : Wed Feb 01 2006 - 07:59:19 EST