DB没有返回响应

时间:2014-12-19 13:28:57

标签: java spring oracle hibernate

我正在使用Spring + Hibernate。下面是我的java方法的代码片段。发出查询后,它等待很长时间。表大小非常小。它间歇性地发生(并非总是如此)。我没有遇到任何例外。你能不能让我知道如何调试这个问题。

代码段:

BigDecimal id = null;
id = (BigDecimal) getHibernateTemplate().execute(new HibernateCallback<Object>() {
    public Object doInHibernate(Session session)throws HibernateException, SQLException {
    Query roleDetails = session.createSQLQuery("select role_id from employee where emp_id = '"+eid+"'");
                    return roleDetails.uniqueResult();
}
});

2 个答案:

答案 0 :(得分:0)

根据给定的细节,很难理解问题的根本原因。我会建议两件事

  1. 代理您的数据源并从java端查看查询执行时间。您可以使用datasource-proxy库来执行此操作。

  2. 如果甲骨文方面有问题,请追踪oracle sessionsunderstand

答案 1 :(得分:0)

Hibernate和Oracle内部的查询都存在缓存,但只有在使用带参数的预处理语句时它才能正常工作,否则会造成伤害。

尝试将代码中的字符串连接更改为参数化查询:

Query roleDetails = session.createSQLQuery("select role_id from employee where emp_id = ':empId").setInteger("empId", eid);