我是Hibernate的新手。使用版本3并出现以下问题。
我使用hibernatetool ant任务生成DAO类
当我运行第一次单元测试时,出现以下错误:
没有配置CurrentSessionContext! org.hibernate.HibernateException: 没有配置CurrentSessionContext!at org.hibernate.impl.SessionFactoryImpl.getCurrentSession(SessionFactoryImpl.java:542)
所以我进行了谷歌搜索并将此行添加到我的hibernate.cfg.xml:
<property name="current_session_context_class">thread</property>
之后,我在尝试持久化对象时遇到以下错误:
org.hibernate.HibernateException:没有活动事务,createCriteria无效
很好,所以我手动开始并提交了一笔交易。
所以我坚持这样坚持: 代码:
Transaction tx=null;
tx = session.beginTransaction();
sessionFactory.getCurrentSession().persist(transientInstance);
成功!
所以,我的问题是:
tx = session.beginTransaction();
答案 0 :(得分:0)
您可以尝试使用Spring-Annotations -
“@事务”
尽量减少你自己的努力...
..这是第一个适当的例子,我刚发现的:
http://www.byteslounge.com/tutorials/spring-with-hibernate-persistence-and-transactions-example
看起来像:
...
@Override
@Transactional
public void insertUser(User user) {
userDAO.insertUser(user);
}
@Override
@Transactional
public User getUserById(int userId) {
return userDAO.getUserById(userId);
}
@Override
@Transactional
public User getUser(String username) {
return userDAO.getUser(username);
}
@Override
@Transactional
public List<User> getUsers() {
return userDAO.getUsers();
}