I found the problem and probably a bug in cayenne...

here is a part of my log:

on first run, insert:

INFO  QueryLogger: INSERT INTO WPTAB (WPTAB_AENKZ, WPTAB_ISIN, WPTAB_LOEKZ)
VALUES (?, ?, ?)
INFO  QueryLogger: [bind: ' ', 'DE0000044444', ' ']

Attention, in ' ' is one blank!!!!

on second run,  update:

INFO  QueryLogger: UPDATE WPTAB SET WPTAB_AENKZ = ?, WPTAB_LOEKZ = ? WHERE
WPTAB_ISIN = ?
INFO  QueryLogger: [bind: ' ', ' ', 'DE0000044444']

Attention, and here in ' ' is one blank!!!!
The Fields WPTAB_AENKZ and WPTAB_LOEKZ has not changed, why cayenne does
those update?

Have everybody a tip for me, what can I do?

thanks and best regards,

Nikolai



2006/7/27, Nikolai Raitsev <[EMAIL PROTECTED]>:

Hello

How works optimistic locking?

I understand it such (see
http://cwiki.apache.org/CAY/optimistic-locking-explained.html):

if no data changed in the dataset, is this data record not updated in the
database.

i have following problem:
first run:
i have 20000 datarecords in a table 1. This dataset I copy with cayenne
into another table 2.
I use setProperty method, like this:

attrListParameter =
p_dataObjectInt.getObjEntity().getAttributes().toArray();

int nSizeAttrListParameter = attrListParameter.length;
ObjAttribute attr;
String sAttrName;

for(int i = 0; i<nSizeAttrListParameter; i++)
{
   attr = (ObjAttribute) attrListParameter[i];
   sAttrName = attr.getName();
   p_dataObject.writeProperty(sAttrName,
p_dataObjectInt.readProperty(sAttrName));
}

I make commit to the end, commit duratation is 11 sec.

second run:
i have 20000 datarecords in a table 1 and in table 2.
I copy this 20000 records once again into table 2 (the data is not
changed!) with code from above and commit changes, but commit duratation is
also 11 sec.!!!! No data has changed!, optimistic locking is set in my
XXX.map.xml for class from p_dataObject and for all attributes.

in the second run is to be sent nevertheless update for all 20000
datarecords, or?

what i do wrong???

with thanks, nikolai



Reply via email to