我在学习 Hibernate 时遇到了问题。我写了 UnitTest 并尝试将对象添加到数据库中。所有选择都正常工作,但插入不能正常工作。
public class HibernateTutorial extends BaseTest {
@Autowired
SessionFactory sessionFactory;
@Test
@Transactional
public void hibernateTutorial() {
@SuppressWarnings("unchecked")
List<User> users = sessionFactory.getCurrentSession().createQuery("from User").list();
sessionFactory.getCurrentSession().saveOrUpdate(new User("HiberTest", "HiberPass", "Hiber@Mail.ru", "HiberSurname",
"HiberLastname", "HiberAddress", "123432"));
}
我也尝试这样的事情
public class HibernateTutorial extends BaseTest {
@Autowired
SessionFactory sessionFactory;
@Test
@Transactional
public void hibernateTutorial() {
@SuppressWarnings("unchecked")
List<User> users = sessionFactory.getCurrentSession().createQuery("from User").list();
sessionFactory.getCurrentSession().saveOrUpdate(
new User("HiberTest", "HiberPass", "Hiber@Mail.ru", "HiberSurname", "HiberLastname", "HiberAddress", "123432"));
sessionFactory.getCurrentSession().getTransaction().commit();
}
}
它向我抛出事务未成功启动的异常,但它添加了用户
这是一个例外
org.springframework.transaction.TransactionSystemException:无法回滚休眠事务;嵌套异常是 org.hibernate.TransactionException: Transaction not successfully started at org.springframework.transaction.support.AbstractPlatformTransactionManager.processRollback(AbstractPlatformTransactionManager.java:845) ) 在 org.springframework.test.context.transaction.TransactionalTestExecutionListener$TransactionContext.endTransaction(TransactionalTestExecutionListener.java:512) 在 org.springframework.test 的 org.springframework.transaction.support.AbstractPlatformTransactionManager.rollback(AbstractPlatformTransactionManager.java:822)。上下文.事务。