异常java.lang.StringIndexOutOfBoundsException:字符串索引超出范围:0

问题描述:

这是我的方法,每次运行它总是说“无法从结果集中读取列值:cColor;字符串索引超出范围:0”并抛出线程“main”中的异常java.lang.StringIndexOutOfBoundsException:字符串索引超出范围:0.任何想法?有人可以告诉我错误在哪里吗?异常java.lang.StringIndexOutOfBoundsException:字符串索引超出范围:0

--OpenSession here-- 
    Query query = session.createSQLQuery("SELECT * FROM db.tblUnits " 
      + "WHERE csTat = :paramStation AND cbrach = :paramLocId" 
      + "AND (cType = 'repo units' OR cType = 'svc units')") 
      .setParameter("paramLocId", locId) 
      .setParameter("paramStation", station); 

    List<Object[]> oAvailableUnits = (List<Object[]>) query.list(); 

    --CloseSession here-- 
+0

为什么使用多线程标签? – Joe

+2

你的堆栈跟踪包含行号和文件名,告诉你错误在哪里。在这里问我们并不好 - 特别是如果你不共享堆栈跟踪。无论如何,这几乎肯定不在您实际向我们展示的代码中。 –

+3

错字。在下一行继续的字符串串联中,缺少“:paramLocId”和“AND”之间的空白。 –

它发生的cColor栏是空的,其数据类型为char,所以我只是改变了数据类型为VARCHAR因为Java不能读取char数据类型。