Как получить значение из query.list () по имени столбца в Java - PullRequest
0 голосов
/ 24 февраля 2019

У меня есть запрос SQL, где я использовал объединение с более чем 7 таблицами.

 SQLQuery q = session.createSQLQuery("select e.id,e.name,e.email from emp as  e 
 inner join some 2/3 tables");
 List<Object[]> listObject = q.list();
 List<Employee> emp = new ArrayList<>();
 for(Object[] result : listObject){
 Employee e = new Emplyee();
 e.setId(result[0].toString());
 e.setName(result[1].toString());
 emp.add(e);
 }

Так что вместо этого я хочу получить значение id и name по имени столбца, есть ли способ?

1 Ответ

0 голосов
/ 25 февраля 2019

Вы можете использовать query.setResultTransformer(Criteria.ALIAS_TO_ENTITY_MAP);.`

try {
         tx = session.beginTransaction();
         String sql = "SELECT firstName, salary FROM EMPLOYEE";
         SQLQuery query = session.createSQLQuery(sql);
         query.setResultTransformer(Criteria.ALIAS_TO_ENTITY_MAP);
         List empList= query.list();
         for(Object object : empList) {
            Map row = (Map)object;
            System.out.print("FirstName: " + row.get("firstName")); 
            System.out.println("Salary: " + row.get("salary")); 
         }
         tx.commit();
      } catch (HibernateException e) {
         if (tx!=null) tx.rollback();
         e.printStackTrace(); 
      } finally {
         session.close(); 
      }`
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...