程序代码:
public List<WenshuInfo> findBySql(String sql) {
log.debug("findBuSql WenshuInfo instances");
Transaction tran = null;
Session session = HibernateSessionFactory.getSession();

try {
tran = session.beginTransaction();
Query queryObject = session.createQuery(sql);

session.flush();
tran.commit();
return queryObject.list();
} catch (RuntimeException re) {
if (null != tran) {
tran.rollback();
tran = null;
}
log.error("findBuSql failed", re);
re.printStackTrace();
return null;
}
}

关键代码:return queryObject.list();

修改后的代码:
public List<WenshuInfo> findBySql(String sql) {
log.debug("findBuSql WenshuInfo instances");
Transaction tran = null;
Session session = HibernateSessionFactory.getSession();

try {
tran = session.beginTransaction();
Query queryObject = session.createQuery(sql);
List<WenshuInfo> list = queryObject.list();
session.flush();
tran.commit();
return list;
} catch (RuntimeException re) {
if (null != tran) {
tran.rollback();
tran = null;
}
log.error("findBuSql failed", re);
re.printStackTrace();
return null;
}
}

异常信息:
at org.hibernate.transaction.JDBCTransaction.rollback(JDBCTransaction.java:149)
at com.mylegist.lawgeneral.dao.WenshuInfoDaoIMP.findBySql(WenshuInfoDaoIMP.java:86)
at com.mylegist.lawgeneral.service.WenshuInfoServiceIMP.findBySql(WenshuInfoServiceIMP.java:28)
at com.mylegist.lawgeneral.action.WenshuAction.execute(WenshuAction.java:35)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.opensymphony.xwork2.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:404)
at com.opensymphony.xwork2.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:267)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:229)
at com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:221)
at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:86)
at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)
at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)
at com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:150)