поэтому я этот код здесьсделка не активна в данный момент
User us = new User();
us.setId(id1);
us.setUsername(userNameTextField.getText());
us.setPassowrd(passwordFormattedTextField.getText());
us.setLevel(levelComboBox.getSelectedItem().toString());
us.setEmpid(getCurrentEmp());
getCurrentEmp().getUserCollection().add(us);
em.getTransaction().begin();
em.persist(getCurrentEmp());
em.flush();
em.getTransaction().commit();
, но когда я пытаюсь совершить я получаю эту ошибку
Exception Description: No transaction is currently active
at org.eclipse.persistence.internal.jpa.transaction.EntityTransactionWrapper.throwCheckTransactionFailedException(EntityTransactionWrapper.java:87)
at org.eclipse.persistence.internal.jpa.transaction.EntityTransactionWrapper.checkForTransaction(EntityTransactionWrapper.java:50)
at org.eclipse.persistence.internal.jpa.EntityManagerImpl.checkForTransaction(EntityManagerImpl.java:2015)
at org.eclipse.persistence.internal.jpa.EntityManagerImpl.flush(EntityManagerImpl.java:846)
и я не получаю у, так как я назвал экземпляр EntityManager следующим
em = emi.getInstance();
из этого класса
public class EmInstance {
EntityManager em;
public EntityManager getInstance(){
em = Persistence.createEntityManagerFactory("samplePU").createEntityManager();
return em;
}
}
Мой вопрос, как я могу сделать транзакцию активной всякий раз, когда я хочу использовать его e.i при совершении, обновление или любой другой процесс сделки. Я использую eclipselink и его настольное приложение
Какую версию EclipseLink вы используете, и вы можете попробовать последнее, если вы еще не? – Chris
Исключение вызвано флешем, который может быть неявным флешем, вызванным поставщиком непрерывности; вы можете попытаться перенести это getTransaction(). begin() в начало метода, чтобы убедиться, что транзакция активна в любом месте JPA. – Gimby