hibernate nativesql выбрать не работает. он возвращает пустые объекты

64
9

Я написал небольшую программу, чтобы получить список вещей из базы данных, используя Hibernate native sql. Я получаю пустые объекты из базы данных.

Configuration conf = new Configuration();

//2 Loading hibernate configuration file
conf.configure("hibernate.cfg.xml");

SessionFactory factory = conf.buildSessionFactory();

Session session = factory.openSession();

SQLQuery qq = session.createSQLQuery("SELECT Employee_Name, EMployee_id, Address FROM employee");
List<Object[]> l = qq.list();
System.out.println(":::::::::::::::::::::"+l.size());
Iterator itr = l.iterator();
while(itr.hasNext()) {
Object[] objs = (Object[])itr.next();
System.out.println(objs[0].toString());
}

размер списка совпадает с размером базы данных. Но obj приходит как пустая, и когда я пробовал печатать значения, он выдавал исключение из внешнего списка

введите описание изображения здесь

спросил(а) 2021-01-28T00:15:17+03:00 4 месяца, 3 недели назад
1
Решение
100

Когда я смотрю на API, https://docs.jboss.org/hibernate/orm/3.5/javadocs/org/hibernate/Query.html#list(), следующий способ работы

enter code here@Test
@SuppressWarnings("deprecation")
public void testEmployee() {
SQLQuery employeeList = hibernateSession
.createSQLQuery("SELECT employeeName, employeeId, Address FROM Employee");
List<Object[]> resultObjects = employeeList.list();
Assert.assertNotNull(resultObjects);
Assert.assertEquals(1, resultObjects.size());
// System.out.println(employees.get(0).getClass().getName());
for (Object[] employeeObject : resultObjects) {
Assert.assertEquals("Ram", employeeObject[0]);
Assert.assertEquals("R18676", employeeObject[1]);
Assert.assertEquals("Bangalore, India", employeeObject[2]);
}
}

12: 44: 08.719 [main] DEBUG org.hibernate.SQL - SELECT employeeName, employeeId, ddress FROM Employee Hibernate: SELECT employeeName, employeeId, Address FROM Employee 12: 44: 08.724 [main] DEBUG org.hibernate.loader.Loader - Строка набора результатов: 0 12: 44: 08.724 [main] DEBUG org.hibernate.loader.Loader - Строка результата: Прогон тестов: 1, Ошибки: 0, Ошибки: 0, Пропущено: 0, Истекшее время: 3,714 с

Результаты:

Пробеги: 1, Сбой: 0, Ошибки: 0, Пропущено: 0

ответил(а) 2021-01-28T00:15:17+03:00 4 месяца, 3 недели назад
45

Проблема разрешена после обновления версии спящего режима до версии 3.2. Раньше я использовал 3.0.1

ответил(а) 2021-01-28T00:15:17+03:00 4 месяца, 3 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема