Hi guys,
i'm trying to figure out how Cayenne is handling transactions in regards
of when data is transferred to the database. I am trying to get some
large transactions (many small records or a few very large records)
working and so far haven't had luck. If i understand correcly, Cayenne
is holding my records in a cache and when i execute the commitChanges()
on the ObjectContext it starts to transfer all of the data to the
database (isolated in a real database transaction). So my question is
(and please correct me if my previuos assumption is wrong) how can I
influence on this behaviour since i pretty much need Cayenne to use the
database transaction more directly. When i skip Cayenne and issue SQL
statements right through the JDBC connection (ie.g. BEGIN TRANSACTION,
UPDATE, UPDATE, UPDATE..., COMMIT TRANSACTION) it works fine as with
MySQL i'm only restricted to the maximum allowed size of the InnoDB
transaction logfile which is quite sufficient for my purposes. On the
other hand i completely understand that Cayenne would not know when i've
finished working with an Entity as there is no kind of "save" command on
the Entity itself.
Oh, this of course only goes for storing data inside the database, not
for reading.
Maybe some of you guys with a bit more insight into the Cayenne
internals can help me out on this or point me to the right direction.
Thanks in advance and a refreshing weekend!
Cheers,
Daniel