У меня есть эта функция, из которой я пытаюсь извлечь имя из таблицы с помощью SQL-запроса.получение ошибки java.lang.ClassCastException: java.lang.String не может быть применено к [Ljava.lang.Object;
@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();' – DevilsHnd
Повторите попытку, где возникает исключение. Он жалуется на незаконный отбор экземпляра 'String' на' Object [] ', и это не происходит в строке, где вы добавили комментарий. –