我正在使用Spring 4.1.3.RELEASE
和Hibernate 4.3.7
。如果沒有活動交易,createCriteria無效
當我試圖使用JTA
事務和Hibernate
條件查詢時,出現以下問題。代碼:
@Resource
private UserTransaction userTransaction;
@Resource
private SessionFactory sessionFactory;
public User getUserById(Integer id){
try {
userTransaction.begin();
} catch (Exception e) { }
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(User.class);
criteria.add(Restrictions.eq("id", id));
try {
userTransaction.commit();
} catch (Exception e) { }
return (User) criteria.uniqueResult();
}
我得到的例外情況是,沒有活動事務的createCriteria無效。通過使用調試器來檢查方法的代碼,我確保了我有一個有效的JTA
-事務。什麼問題?
請確保您已設置休眠以正確集成JTA。 –
@ M.Deinum你的意思是'線程 '?目前它被設置爲線程。那是蠕蟲嗎? –
一旦你是基於spring的,爲什麼你不想用spring來管理你的交易?看看鏈接: http://spring.io/blog/2011/08/15/configuring-spring-and-jta-without-full-java-ee/ – Hazhir