_忧 2015-03-06 08:30 采纳率: 45.2%
浏览 1601

关于S2SH3大框架整合后,hibernate无异常提醒问题。

调用查询数据库操作的时候,HQL语句写错也没有错误提示。其中我的代码封装如下:

hibernate、struts2配置已经整合到spring中。

1.
处理页面传来的值的 action类:
public class ManagerAction extends BaseAction{

@Resource
private ManagerInter managerImpl;
private Manager manager;

public String recManager(){
    String account = manager.getAccount();
    String paswd = manager.getPassword();
    System.out.println(account+"   "+paswd);
    List<Manager> managers = managerImpl.executeQuery("from Manager",account,paswd);
    return "success";
}

public Manager getManager() {
    return manager;
}

public void setManager(Manager manager) {
    this.manager = manager;
}

public void setManagerImpl(ManagerInter managerImpl) {
    this.managerImpl = managerImpl;
}

这段代码中的HQL语句是明显错误,但却没有异常抛出。在HQL语句正确的情况下,是能正常的查询出数据,故已经排除数据库异常,代码错误,没织入spring容器等错误。

2.
这个查询方法是调用了 ManagerInter 接口里的方法,已经织入spring,其中ManagerInter接口代码如下:

public interface ManagerInter extends BaseDaoInter{

//这个接口写入该业务专有方法

}

这个接口是继承了一个基础接口,基础接口代码如下:
public interface BaseDaoInter {
/**
* 查询方法
* */
public List executeQuery(String hql , Object...prameters);
}

其中实现类如下:
@Transactional
public abstract class BaseDaoImpl implements BaseDaoInter{

@Resource
private SessionFactory sessionFactory;

//查询方法
public List executeQuery(String hql, Object... prameters) {
    Query query = sessionFactory.getCurrentSession().createQuery(hql);
    if(prameters!=null&&prameters.length>0){
        for (int i = 0; i < prameters.length; i++) {
            query.setParameter(i, prameters[i]);
        }
    }
        return query.list();
}
}

问:要怎样做才能让错误抛出。
我已经尝试过的方法:
    public List executeQuery(String hql, Object... prameters) {
    Query query = null;
    try {
        query = sessionFactory.getCurrentSession().createQuery(hql);
        if (prameters != null && prameters.length > 0) {
            for (int i = 0; i < prameters.length; i++) {
                query.setParameter(i, prameters[i]);
            }
        }
    } catch (Exception e) {
        throw new RuntimeException(e.getMessage());
    }
        return query.list();
}

对这个实现类 进行 异常扑捉,可是不行。
问:怎么办?

  • 写回答

1条回答 默认 最新

  • just-go 2015-03-18 14:21
    关注

    真没看出你的hql哪里错了?

    评论

报告相同问题?

悬赏问题

  • ¥15 教务系统账号被盗号如何追溯设备
  • ¥20 delta降尺度方法,未来数据怎么降尺度
  • ¥15 c# 使用NPOI快速将datatable数据导入excel中指定sheet,要求快速高效
  • ¥15 再不同版本的系统上,TCP传输速度不一致
  • ¥15 高德地图点聚合中Marker的位置无法实时更新
  • ¥15 DIFY API Endpoint 问题。
  • ¥20 sub地址DHCP问题
  • ¥15 delta降尺度计算的一些细节,有偿
  • ¥15 Arduino红外遥控代码有问题
  • ¥15 数值计算离散正交多项式