Во-первых, операции persist
, merge
, remove
не будут напрямую попадать в базу данных, они изменят состояние объектовв памяти - в контексте постоянства (транзакция).Когда транзакция совершена или если постоянный контекст сброшен , изменения записываются в базу данных.
Во-вторых,persist
операция может быть вызвана только внутри транзакции, исключение будет выдано за пределами транзакции.Итак, вам нужно начать транзакцию.
Вот модифицированный пример:
EntityManagerFactory emf = Persistence.createEntityManagerFactory("orpt2");
EntityManager em = emf.createEntityManager();
em.getTransaction().begin(); // start a transaction
dispositivoMedico = new DispositivoMedico();
dispositivoMedico.setCategoria("prova");
dispositivoMedico.setCodice("323");
em.persist(dispositivoMedico);
em.getTransaction().commit(); // Commit the current resource transaction, writing
// any unflushed changes to the database.