PersistenceManagerFactory pmf = JDOHelper.getPersistenceManagerFactory("jdoconfig.xml");
PersistenceManager pm = pmf.getPersistenceManager();
Transaction tx = pm.currentTransaction();
try {
tx.begin();
// ...
tx.commit();
} catch (Exception e) {
if (tx.isActive()) {
tx.rollback();
}
} finally {
pm.close();
}
MyEntity obj = pm.getObjectById(MyEntity.class, id);
obj.setValue(newValue);
tx.commit();
MyEntity obj = pm.getObjectById(MyEntity.class, id);
pm.refresh(obj, LockModeType.PESSIMISTIC_WRITE);
obj.setValue(newValue);
tx.commit();
<?xml version="1.0"?>
<jdoconfig xmlns="http://xmlns.jcp.org/xml/ns/jdo/jdoconfig"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/jdo/jdoconfig
http://xmlns.jcp.org/xml/ns/jdo/jdoconfig_3_1.xsd">
<persistence-manager-factory name="myPMF"
class="org.datanucleus.api.jdo.JDOPersistenceManagerFactory">
<property name="javax.jdo.PersistenceManagerFactoryClass"
value="org.datanucleus.api.jdo.JDOPersistenceManagerFactory"/>
<property name="javax.jdo.option.ConnectionURL" value="jdbc:mysql://localhost/mydb"/>
<property name="javax.jdo.option.ConnectionDriverName" value="com.mysql.jdbc.Driver"/>
<property name="javax.jdo.option.ConnectionUserName" value="username"/>
<property name="javax.jdo.option.ConnectionPassword" value="password"/>
<!-- ... -->
</persistence-manager-factory>
</jdoconfig>