1
SQL 쿼리를 사용하여 테이블에서 이름을 추출하려고하는이 함수가 있습니다.오류가 발생합니다. java.lang.ClassCastException : java.lang.String을 [Ljava.lang.Object;
String empName = empDao.getEmpNameFromId(data.getId());
logger.info("name"+empName);
인터페이스 기능 getEmpNameFromId을 필요로한다 : 나의 데이터베이스 오브젝트에서
@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;
}
나는이 함수를 호출하고
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 []'로 불법적으로 캐스팅 한 것에 대해 불평하고 당신이 당신의 코멘트를 추가 한 라인에서는 일어나지 않습니다. –