org.hibernate.TransactionException: nested transactions not supported
贴主要部分代码
public PlUser findByUsernameAndPassword(String username, String password) { Session sx = this.getHibernateTemplate().getSessionFactory().openSession(); Transaction tx = sx.getTransaction(); tx.begin(); PlUser user = (PlUser) sx.createQuery("from PlUser u where u.username=? and u.password=?") .setString(0, username) .setString(1, password) .uniqueResult(); tx.commit(); sx.close(); return user; }
这是修改后正确的代码。
原先的代码:
public PlUser findByUsernameAndPassword(String username, String password) { Session sx = this.getHibernateTemplate().getSessionFactory().getCurrentSession(); Transaction tx = sx.getTransaction(); tx.begin(); PlUser user = (PlUser) sx.createQuery("from PlUser u where u.username=? and u.password=?") .setString(0, username) .setString(1, password) .uniqueResult(); tx.commit(); sx.close(); return user; }
提示:org.hibernate.TransactionException: nested transactions not supported
而后删除Transaction tx那一行,提示:org.hibernate.SessionException: Session is closed
尽管在applicationContext.xml那里配置了连接池,初始化为20条连接,但似乎并没效果。
getHibernateTemplate()可参考http://blog.csdn.net/zmhinzaghi/article/details/7091629
个人案例,请谅解。
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。