On 5/02/12 10:11 PM, Daniel Scheibe wrote:
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
Can you explain a little more what you are trying to do and what problem you
are trying to avoid. Yes, there are ways to control the transactions through
Cayenne (search this list for many previous thread discussing this), but it
sounds like you just need to commit your context at the appropriate places in
your code.
Ari
--
-------------------------->
Aristedes Maniatis
GPG fingerprint CBFB 84B4 738D 4E87 5E5C 5EFA EF6A 7D2E 3E49 102A