報(bào)錯javax.persistence.TransactionRequiredException: no transaction is in progress at org.hibernate.internal.SessionImpl.checkTransactionNeeded(SessionImpl.java:3392) at org.hibernate.internal.SessionImpl.flush(SessionImpl.java:1385) at junit.StudentTest.
package?junit; import?java.sql.Connection; import?java.sql.SQLException; import?java.text.ParseException; import?java.text.SimpleDateFormat; import?java.util.Date; import?org.hibernate.Session; import?org.hibernate.SessionFactory; import?org.hibernate.Transaction; import?org.hibernate.cfg.Configuration; import?org.hibernate.jdbc.Work; import?org.junit.After; import?org.junit.Before; import?org.junit.Test; import?com.model.Student; public?class?StudentTest?{ private?SessionFactory?sessionFactory; private?Session?session; private?Transaction?transaction; @Before public?void?init()?{ Configuration?configure?=?new?Configuration().configure(); //ServiceRegistry?serviceRegistry?=?new?StandardServiceRegistryBuilder() // .applySettings(configure.getProperties()).build();? sessionFactory?=?configure.buildSessionFactory(); session?=?sessionFactory.openSession(); //transaction?=?session.beginTransaction(); } @Test public?void?testSaveStudent()?{ SimpleDateFormat?sdf?=?new?SimpleDateFormat("yyyy-MM-dd"); try?{ Date?date?=?sdf.parse("1987-03-31"); Student?s?=?new?Student(3,?"aa",?date,?"上海"); session.doWork(new?Work()?{ @Override public?void?execute(Connection?arg0)?throws?SQLException?{ //?TODO?Auto-generated?method?stub arg0.setAutoCommit(true); } }); session.save(s); session.flush(); }?catch?(ParseException?e)?{ //?TODO?Auto-generated?catch?block e.printStackTrace(); } } @After public?void?destroy()?{ //transaction.commit(); session.close(); sessionFactory.close(); } }
使用dowork方法不成功,報(bào)錯no tranction in progress
2016-10-01
這么問題怎么破?
2016-07-06
33行注釋解開....