Use ObjectCachePerBrokerImpl as your cache. It'll act as effectively a cache within the single transaction but won't share objects across transactions.
-----Original Message----- From: Luis Cruz [mailto:[EMAIL PROTECTED] Sent: Monday, December 15, 2003 4:22 PM To: OJB Users List Subject: Multiple reads within the same transaction Hello, We've been using OJB for well over a year now, and everyone on our team is very satisfied with this wonderful tool. Thanks goes out to every developer for all your hard work. Today however we ran into a feature that until now we overlooked. Please consider the following mapping: <class-descriptor class="A" table="A"> <field-descriptor id="1" name="id" column="ID" jdbc-type="INTEGER" primarykey="true" autoincrement="true" /> <attribute attribute-name="cacheable" attribute-value="false" /> </class-descriptor> For the above mapping, reading an object twice inside the the same transaction returns two different instances. Note that if the class was cacheable this would not be the case. My question is why doesn't OJB return the same instance to various reads of the same object within the same transaction? This is an issue for us because the following scenario occurs in our application: // START OF EXAMPLE CODE beginTransaction(); ... A instance1 = read(A.class, idOfSomeA); tx.lock(instance1, Transaction.READ); doSomeVerifications(instance1); ... A instance2 = read(A.class, idOfSomeA); tx.lock(instance2, Transaction.WRITE); instance2.setOtherFields(someNewValue); confirmTransaction(); // END OF EXAMPLE CODE What happens here is that alterations made upon instance2 (including the lock which is performed) are ignored because the transaction already has a reference to the object in question. Any thoughts are appreciated, Luis Cruz --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
