Попытка напечатать несколько результирующих наборов. Но список возвращает только объект - PullRequest
0 голосов
/ 08 августа 2011

Это мой запрос, который я пытаюсь получить из нескольких таблиц.

    SQLQuery query = session.createSQLQuery("select t.id as ID,
                                                    t.companyname as COMPANYNAME,
                                                    e.fullname as FULLNAME,
                                                    e.empid as EMPID,
                                                    ca.dateallocated as DATEALLOCATED 
                                             from   bw_tempclientdetails t,
                                                    bw_employee_details e,
                                                    bw_clientallocation ca 
                                             where  e.empid=ca.empid and                                       
                                                    ca.companyname=t.companyname ");

Но query.list возвращает только объект, в котором я не могу преобразовать в строковое представление. Любое решение?

1 Ответ

0 голосов
/ 08 августа 2011

Вы можете создать POJO.Небольшой класс, такой как:

/**
* Dto.
*/
class MyClass {
    int id;
    String companyName;
    String fullName;
    int empId;
    Date dateAllocated;

    public MyClass() {
    }

    public MyClass(int id, String companyName, String fullName, int empId, Date dateAllocated) {
        this.id = id;
        this.companyName = companyName;
        this.fullName = fullName;
        this.empId = empId;
        this.dateAllocated = dateAllocated;
    }
    // Rest of code
}

Таким образом, Hibernate позволяет создать экземпляр одного Объекта в каждой возвращенной строке.Итак, полный список с результатами.

Если некоторые элементы могут быть обнуляемыми, то вам лучше использовать объекты (Integer вместо int).

Для создания объектов:

select new package.MyClass(colA, colB...)

В нашем примере

SQLQuery query = session.createSQLQuery("select new a.b.MyPojo(t.id as ID,
                                                t.companyname as COMPANYNAME,
                                                e.fullname as FULLNAME,
                                                e.empid as EMPID,
                                                ca.dateallocated as DATEALLOCATED)
                                         from   bw_tempclientdetails t,
                                                bw_employee_details e,
                                                bw_clientallocation ca 
                                         where  e.empid=ca.empid and                                       
                                                ca.companyname=t.companyname ");

Возвращает List<MyPojo> с одним элементом на строку.Это то, что вы хотите?

Удо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...