【发布时间】:2017-01-21 11:21:23
【问题描述】:
我有这个函数,我试图使用 sql 查询从表中提取名称。
@Override
@Transactional
public String getEmpNameFromId(long Id) {
final Session session = sessionFactory.openSession();
String name = "";
SQLQuery query = session.createSQLQuery("SELECT name from employee where id=" + Id);
List<Object[]> list = (List<Object[]>)query.list();//Object[] objs = (Object[])query.uniqueResult()
for (Iterator<Object[]> iterator = list.iterator(); iterator.hasNext();) {
Object[] e = iterator.next();
name = (String)e[0];//case object type to another by youself...
}
return name;
}
在我的数据库对象中,我将此函数称为:
String empName = empDao.getEmpNameFromId(data.getId());
logger.info("name"+empName);
具有getEmpNameFromId函数的接口如下:
public interface empDao {
String getEmpNameFromId(long Id);
}
我得到的例外是:
java.lang.ClassCastException: java.lang.String cannot be cast to [Ljava.lang.Object;
在这里需要一些帮助。
提前致谢:)
【问题讨论】:
-
试试这个:
name = e[0].toString(); -
请再次检查异常发生的位置。它抱怨
String到Object[]的实例的非法转换,而这不会发生在您添加评论的行中。
标签: java spring hibernate classcastexception