Я видел несколько примеров в интернете, которые проверяют, активна ли транзакция в начале процесса.
Код ниже, который является моим, получает EntityManager с завода.
Я не могу понять, , почему нужно проверять, активна ли транзакция, ДО того, как она начнется () ???
Это потому, что какой-то другой процесс может использовать тот же экземпляр EntityManager? (EntityManagerFactory является одноэлементным, а EntityManager - нет)
@Path("update")
@PUT
@Consumes("application/json")
public Response machineUpdate(String content) {
JSONObject jObj = null;
EntityManager em = null;
EntityTransaction txn = null;
try {
JSONObject jObj = new JSONObject(content);
em = EmProvider.getInstance().getEntityManagerFactory().createEntityManager();
//what's this line doing here???
if(em.getTransaction().isActive()) {
return HttpStatusHandler.sendConflict();
}
txn = em.getTransaction();
txn.begin();
//more process ......
}
catch(.....