Использование документации Кодо с JDO:
Кодо предоставляет явные API-интерфейсы для блокировки объектов и получить их текущий уровень блокировки. кодо СДО KodoPersistenceManager предоставляет следующие методы объектов блокировки явно
У вас есть следующие методы блокировки объекта:
public void lockPersistent (Object pc);
public void lockPersistent (Object pc, int level, long timeout);
public void lockPersistentAll (Object[] pcs);
public void lockPersistentAll (Object[] pcs, int level, long timeout);
public void lockPersistentAll (Collection pcs);
public void lockPersistentAll (Collection pcs, int level, long timeout);
И следующий пример:
// Получает уровень блокировки объекта
Stock stock = ...;
int level = KodoJDOHelper.getLockLevel (stock);
if (level == KodoJDOHelper.LOCK_WRITE)
PersistenceManager pm = ...;
pm.currentTransaction().setOptimistic (true);
pm.currentTransaction().begin();
// override default of not locking during an opt trans to lock stock object
KodoPersistenceManager kpm = KodoJDOHelper.cast (pm);
kpm.lockPersistent (stock, KodoPersistenceManager.LOCK_WRITE, -1);
stock.setPrice (market.calculatePrice (stock));
pm.currentTransaction().commit();
Использование JDO или JPA? JDO (2.2) позволяет Transaction.setIsolationLevel. Я сомневаюсь, что Kodo поддерживает JDO 2.2, но DataNucleus JDO. –
Мы используем kodo-jdo 3.4.0 и jdo 1.0.2, и мы не обновляем его в ближайшее время. Наверное, мы застряли тогда .. ?? – stillLearning