我想通过休眠来从数据库检索数据。但是当我刷新我的jsp页面时,我收到了“org.hibernate.TransactionException:嵌套事务不受支持”异常。有时候我能够得到结果,但有时我会超出例外。我只在代码中使用beginTransaction()方法一次。但仍然得到例外。什么可能是根本原因。获取类org.hibernate.TransactionException:不支持嵌套事务
My code is :
StringBuilder sb = new StringBuilder();
sb.append("{").append(STATUS).append(OK).append(", ").append(RESULTS);
sb.append("[");
if(session == null){
return getErrorMsgJson("Failed to get DB Session");
}
try {
session.beginTransaction();
ListIterator iterator3 = session.createSQLQuery(sqlStr).list().listIterator();
int t=0;
while(iterator3.hasNext()){
Object obj;
Object obj3[]=null;
if((obj=iterator3.next()) instanceof BigInteger){
sb.append("\"");
sb.append(obj.toString());
sb.append("\"");
break;
}
else{
obj3 = (Object[])iterator3.previous();
for(int i=0;i<obj3.length;i++){
sb.append("\"");
sb.append(obj3[i].toString());
sb.append("\"");
if(t<obj3.length){
sb.append(",");
}
}
}
iterator3.next();
t++;
}
//session.getTransaction().commit();
sb.append("] }");
return sb.toString();
}
catch (Exception e) {
//Log.logErr(Logc.JS, Logc.JS_INTERNAL_ERR, "Exception while getting DB Connection");
//out.println("Exception while getting DB Connection");
//return getErrorMsgJson(e.getClass().getName()+" : "+e.getMessage());
//return getErrorMsgJson(e.getClass()+" "+e.getMessage());
//e.printStackTrace();
return getErrorMsgJson(e.getClass()+" : "+e.getMessage());
}
在此先感谢。
可能重复[如何避免嵌套事务不支持错误?(http://stackoverflow.com/questions/17542157/how-to-avoid-nested-transactions-not-supported-error) – 2014-10-29 09:44:34
请粘贴完整的代码。 – 2014-10-29 09:45:07
粘贴整个代码。 – 2014-10-29 12:37:10