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

Reply via email to