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
--

Reply via email to