I'm confused - in your code snippet, o2.getObjectId() *should* return
null because o2 is a new object and the PK value is unknown at that
point. What kind of PK's are you working with: auto-increment/sequence,
composite, natural or what?
You mentioned that your data is coming from XML. Are the primary key
values already assigned in the XML?
My guess is that you simply need to expose your primary key value(s) as
regular properties and use their getters in your equals() method, but I
may not understand the situation.
See http://objectstyle.org/confluence/display/CAY/Mapping+Primary+Keys
-Ryan
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 : Thu Feb 02 2006 - 03:37:35 EST