session.createQuery()不执行和java.lang.reflect.InvocationTargetException

时间:2022-04-09 14:40:09

  今天写SSH的工程的时候,执行到一个DAO中的Query query = session.createQuery(hql)的时候,没有成功执行,直接跳到了finally,然后前台报了500和java.lang.reflect.InvocationTargetException的错误。

  代码如下:

package dao;

import java.util.List;

import model.AccountInfo;

import org.hibernate.HibernateException;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.Transaction; import util.HibernateUtil; public class AccountDao {
public Boolean checkPassword(String account,String password){
Session session = HibernateUtil.getSession();
Transaction tran = null;
List<AccountInfo> list = null;
try{
tran = session.beginTransaction();
String hql="from AccountInfo as a where a.account=:username";
Query query = session.createQuery(hql);
query.setString("username",account);
list = query.list();
tran.commit();
}catch(HibernateException he){
tran.rollback();
he.printStackTrace();
}finally{
session.close();
}
if( list.size()==0 || !password.equals(list.get(0).getPassword()) )
return false;
else
return true;
}
}

  然而实际上跟代码没有卵关系"( ̄▽ ̄)"""。是我用MyEclipse安装的hibernate4的lib的antlr-2.7.7.jar和struts2的lib的antlr-2.7.2.jar冲突了,删除后者即可。