Я учусь EJB/JPA, и я удивляюсь, как следует этот фрагмент работы:Как несинхронизированный EntityManager читает из БД?
@Stateful
public class Sample {
@PersistenceContext(type=PersistenceContextType.EXTENDED,
synchronization=SynchronizationType.UNSYNCHRONIZED,
unitName="..")
EntityManager em;
public Employee get(int id){
retirm em.find(Employee.class , id);
}
// ...
}
Это сохраняющий состояние фасоли, поэтому по умолчанию он должен быть заключен в контейнер менеджер сделки (обязательно).
Но, с другой стороны, несинхронизированный менеджер, как говорят, НЕ присоединяется к транзакции, независимо от того, что явно не связано.
Итак, если он не присоединяется к tx, как он извлекает данные из БД? Возможно ли, что он будет содержать грязные/фантомные чтения и т. Д.?
Этот фрагмент выполнен из «Pro JPA 2».
Прохладный, спасибо! Но каков уровень изоляции для такой транзакции без чтения? –