EntityManager не может использовать persist для сохранения элемента в базе данных
Я столкнулся с проблемой сохранения элемента в базе данных с помощью EntityManager. Основываясь на ответах, которые я нашел, я попробовал эти 4 способа в своем DaoJpa, чтобы сделать это, но все равно не получилось. Здесь я приложил четыре способа, которые я попробовал:
Код в части контроллера:
@Transactional
SmartProduct smartProduct = new SmartProduct();
smartProduct.setName("Dove Soap");
smartProductDao.persist(smartProduct);
1. DaoJpa:
@Transactional
public void persist(SmartProduct smartProduct) {
entityManager.persist(smartProduct);
Безразлично»т работа!
2.
@Transactional
public void persist(SmartProduct smartProduct) {
entityManager.persist(smartProduct);
entityManager.flush();
Исключение, которое я получил: транзакция не выполняется
3.
@Transactional
public void persist(SmartProduct smartProduct) {
EntityTransaction emTransaction = entityManager.getTransaction();
emTransaction.begin();
entityManager.persist(smartProduct);
emTransaction.commit();
entityManager.close();
Полученное исключение: не разрешено создавать транзакции в совместно используемом EntityManager - вместо этого используйте транзакции Spring или EJB CMT
4.
@Transactional
public void persist(SmartProduct smartProduct) {
EntityManagerFactory emf = Persistence.createEntityManagerFactory("persistenceUnit");
EntityManager em = emf.createEntityManager();
EntityTransaction etx = em.getTransaction();
etx.begin();
em.persist(smartProduct);
etx.commit();
em.close();
emf.close();
Исключение, которое я получил: приложение должно предоставлять соединения JDBC
Может ли кто-нибудь помочь мне разобраться в проблеме, пожалуйста? Спасибо заранее!
Большое спасибо JustinKSU 'с помощью. Я добавляю аннотацию в контексте Spring, и затем это решается! Вот предыдущая версия моего контекста Spring:
После того, как добавил
оно работает: