2016-07-22 3 views
0

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

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 приходит, как пустой, и когда я пытался значения печати это дает outofbound исключение

enter image description here

ответ

0

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

enter code [email protected] 
@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, A ddress FROM Employee Hibernate: SELECT employeeName, employeeId, Адрес FROM Employee 12: 44: 08.724 [main] DEBUG org.hibernate. loader.Loader - Результат set row: 0 12: 44: 08.724 [main] DEBUG org.hibernate.loader.Loader - строка результата: Тесты: 1, ошибки: 0, ошибки: 0, пропущен: 0, время истекло: 3.714 с

Результаты:

тесты выполняются: 1, Отказы: 0, ошибки: 0, пропущено: 0

+0

в моем случае объекты результата идут как null (как показано на прилагаемом скриншоте). Я тоже старался. он не работает –

+0

Можете ли вы поделиться своим bean и hibernate cfg, а также, пожалуйста, –

0

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

Смежные вопросы