Hi Hans,
[your address doesn't seem to be subscribed to the list, so be aware
that you can miss list-only responses]
Yes, relationships won't probably get copied the way you expect them.
IIRC someone posted some examples before on how to clone a
DataObject. In any event it should be fairly easy to do in a generic
fashion by obtaining an ObjEntity and using DataObject.writeProperty
() for simple properties:
ObjEntity e = ctx.getEntityResolver().lookupObjEntity
(AiAboangebot.class);
// iterate through entity attributes and use src.readProperty()/
target.writeProperty()
// iterate through entity relationships and use src.readProperty/
target.setToOneTarget()/target.addToManyTarget() for to-one and to-
many relationships.
Andrus
On Aug 16, 2006, at 9:45 AM, Hans Schmidt wrote:
Hi,
I am using Cayenne 1.2 final release and the following code:
public AiAboangebot copyToNewAngebot(AiAboangebot toCopy) {
ctx.commitChanges();
List ur = new ArrayList();
Integer nextId = getNextId(toCopy);
AiAboangebot cop =(AiAboangebot)ctx.createAndRegisterNewObject
(AiAboangebot.class);
ur.add(cop);
BeanUtils.copyProperties(toCopy,cop);
ctx.unregisterObjects(ur);
cop.setId(nextId);
ctx.registerNewObject(cop);
ctx.commitChanges();
return cop;
}
the purpose of the code is to copy an existing db-row, assign a new
id and edit it.
the code sometimes works but sometimes not.
It seems the relations are sometimes broken so that the generated
SQL tries to insert NULL values into non-nullable columns.
any help would be greatly appreciated.
greetings
Hans
--