Как получить результат в виде списка <Class>в спящем режиме - PullRequest
0 голосов
/ 28 декабря 2018

Я работаю с hibernate (4) и выполнил следующую конфигурацию.

<bean id="sessionFactory"
        class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
        <property name="dataSource" ref="dataSource"></property>
        <property name="hibernateProperties">
            <props>
                <prop key="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</prop>
                <prop key="hibernate.show_sql">true</prop>
                <prop key="hibernate.hbm2ddl.auto">update</prop>
            </props>
        </property>
        <property name="annotatedClasses">
            <list>
                <value>com.myproj.model.Employee</value>
            </list>
        </property>
    </bean>

    <bean id="transactionManager"
        class="org.springframework.orm.hibernate4.HibernateTransactionManager">
        <property name="sessionFactory" ref="sessionFactory" />
    </bean>

    <bean id="empdao" class="com.myproj.dao.EmpDao">
    <qualifier value="q1"></qualifier>
    <property name="sessionFactory" ref="sessionFactory"></property>

При реализации основного запроса (выбор всех данных из БД) я получаю результат в виде спискаобъект, но я хочу, чтобы этот результат был в виде списка пользовательских классов (в моем случае Employee).Ниже приведен фрагмент кода в файле DAO (empDao) для того же самого.

List<Employee> list = new ArrayList<Employee>();
Session s = sessionFactory.openSession();


try {
s.beginTransaction();

list= s.createQuery("from Employee").list();
s.getTransaction().commit();

} catch (Exception e) {
System.out.println(e);
}
return list;

Здесь я получаю список в виде массива объектов. Помогите мне получить то же самое, что и список класса Employee.

Любая помощь приветствуется.

1 Ответ

0 голосов
/ 28 декабря 2018

Я бы порекомендовал вам использовать TypedQuery вместо Query.Например:

Вместо этого:

List<Employee> list = new ArrayList<Employee>();
list = s.createQuery("from Employee").list();

Использовать так:

List<Employee> list = new ArrayList<Employee>();
TypedQuery<Employee> q = s.createQuery("from Employee", Employee.class);
list = q.list();

В первом случаеcreateQuery возвращает объект класса Query, для которого мы вызываем метод списка.Но в случае второго createQuery вернет объект TypedQuery.

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