public void lagreMelding(String bruker, String msg) {
EntityManager em = emf.createEntityManager();
Melding melding = new Melding(bruker, msg);
try {
em.getTransaction().begin();
em.persist(melding);
em.getTransaction().commit();
em.close();
} catch (RollbackException e) {
em.getTransaction().rollback();
}
}
時,錯誤報告如下:IllegalStateException異常持久對象
java.lang.IllegalStateException:
Exception Description: Cannot use an EntityTransaction while using JTA.
org.eclipse.persistence.internal.jpa.transaction.JTATransactionWrapper.getTransaction(JTATransactionWrapper.java:73)
org.eclipse.persistence.internal.jpa.EntityManagerImpl.getTransaction(EntityManagerImpl.java:1311)
no.hib.dat104.oblig1.Kontroll.lagreMelding(Kontroll.java:37)
no.hib.dat104.oblig1.MeldingServlet.doPost(MeldingServlet.java:80)
javax.servlet.http.HttpServlet.service(HttpServlet.java:646)
javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
所有其他的這個問題已經被移除
em.getTransaction().begin();
和
em.getTransaction().commit();
解決實例
但是在做這個d atabase不更新。任何人都在意解釋我錯過了什麼?預先感謝你的時間爲一個簡單的問題:)
http://stackoverflow.com/questions/10915855/cannot-use-an-entitytransaction-while-using-jta – RahulArackal 2014-09-19 11:46:44
有同樣的問題 - 這對我工作 - http://stackoverflow.com/a/38209862/388389 - 在提供者定義後立即添加* non-jta-data-source * – npocmaka 2017-01-03 14:27:48