Hey Andras, great to see another group of students participating!
Regarding your question: After committing the first transaction, the object's state is transferred to the database (eventually flushed), the transaction cache is invalidated and the object tracker (which identifies changes within objects) stops "following" the Person instance. In terms of JPA: It becomes detached. When starting the second transaction, Castor (the running transaction in specific) has no clue that your Person instance wants to contribute to that transaction (Imagine Castor keeping references to all objects someone had loaded from the database earlier would not be such a good idea, especially from the garbage collection's point of view and concerning database locks etc.). However, you have two options: 1) Load the entity, then modify it and then commit the transaction. 2) Explicitly calling Database.update using Long Transactions as described in [1]. I hope that all your questions are now answered. Feel free to follow up, if not. Regards, Lukas PS: One more thing: ad "persisted value remains the same". Always perform a flush first, because it simply may have not been flushed! [1] Long Transactions, http://castor.org/long-transact.html Am 26.03.2010 um 16:39 schrieb Andras Hatvani: > Hi, > > I'm new to Castor and I'm part of this semester's development team of the > course Advanced Software Engineering on the Vienna University of Technology. > During the development with Castor the following question arose for me: Why > must the load and the updating of an object be in the same transaction? > > Example: > 1) WORKS > db.begin(); > loadedPerson = db.load(Person.class, id); > loadedPerson.setFirstName(FIRST_NAME_2); > db.commit(); > > 2) DOESN'T WORK > db.begin(); > loadedPerson = db.load(Person.class, id); > db.commit(); > > db.begin(); > loadedPerson.setFirstName(FIRST_NAME_2); > db.commit(); > > In the second case the persisted values remained the same. > > Thanks, > Andras Hatvani > > > --------------------------------------------------------------------- > To unsubscribe from this list, please visit: > > http://xircles.codehaus.org/manage_email > > --------------------------------------------------------------------- To unsubscribe from this list, please visit: http://xircles.codehaus.org/manage_email

