[ https://issues.apache.org/jira/browse/JDO-589?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14115588#comment-14115588 ]
Andy Jefferson commented on JDO-589: ------------------------------------ A suggestion : Deprecate [get|set]nontransactionalWrite methods and add the following void setNontransactionalWriteMode(WriteMode); WriteMode getNontransactionalWriteMode(); public enum WriteMode { NONE, ATOMIC, DELAY_UNTIL_COMMIT } No real problem with changing the enum value names to something better. > Allow makePersistent and deletePersistent outside a transaction > --------------------------------------------------------------- > > Key: JDO-589 > URL: https://issues.apache.org/jira/browse/JDO-589 > Project: JDO > Issue Type: New Feature > Components: api, specification, tck > Affects Versions: JDO 2 maintenance release 1 (2.1) > Reporter: Craig L Russell > Fix For: JDO 3.2 > > > JPA allows users to call makePersistent outside a transaction, and then when > beginning and committing a transaction, the instances are made persistent. > This is similar to nontransactional dirty in which the managed instances can > be modified outside a transaction and then the changes committed within a > transaction. > From the JPA spec, "When an EntityManager with an extended persistence > context is used, the persist, remove, merge, and refresh operations may be > called regardless of whether a transaction is active. The effects of these > operations will be committed to the database when the extended persistence > context is enlisted in a transaction and the transaction commits." > This behavior should not be the default behavior (for backward compatibility > reasons if not the principle of least surprise) so it should be under control > of a PersistenceManager and PersistenceManagerFactory flag, perhaps > NontransactionalNew. -- This message was sent by Atlassian JIRA (v6.2#6252)