![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| Ares4322 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 339 Регистрация: 25.9.2007 Где: Россия, Москва Репутация: 2 Всего: 3 |
Доброго времени суток!
Использую Hibernate. Формирую запрос вручную. Как мне получить данные из ответа на запрос без привязки к какому-то определенному классу? |
|||
|
||||
| MaxPayneC |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 324 Регистрация: 18.2.2006 Репутация: 3 Всего: 9 |
Вот только возникает вопрос, зачем нужен хибернейт, если вы все равно пользуетесь запросами? |
|||
|
||||
| Ares4322 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 339 Регистрация: 25.9.2007 Где: Россия, Москва Репутация: 2 Всего: 3 |
1. Для единого файла настройки параметров соединения с БД. У меня часть программы - Struts2, которая работает с БД через DAO и Hibernate. Тут все понятно - отображение ТБД на объект. А вторая часть - Ajax. так вот загрузчик данных для AJAX работал на простом JDBC. И получалось, что 2 точки одинаковых настроек.
2. Для ускорения работы с БД, так как в hibernate есть готовый пул коннектов. 3. Для логирования работы с БД. Так как hibernate есть встроенный логгер. Я думаю, что тут можно еще пунктов добавить. Но в общем и целом - вот для этого. Сейчас я не использую отображение ТБД на класс, но в принципе можно его сделать , чтобы потом класс целиком сериализовывать в JSON, а не формировать Map вручную из полей ответа на запрос. Так есть все-таки ответ на мой вопрос? |
|||
|
||||
| MaxPayneC |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 324 Регистрация: 18.2.2006 Репутация: 3 Всего: 9 |
Да, я привел код постом выше
Возможно я грубовато выразился, если да - извиняюсь. Просто написание sql руками при использовании хибернейт крайне не рекомендуется. |
|||
|
||||
| afon |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 85 Регистрация: 5.4.2008 Где: Украина, Киев Репутация: нет Всего: 1 |
Простые данные, вытащенные любым native query можно на лету мапить на любой не entity класс (если конечно он тоже простой, без связей/иерархий).
Ну, допустим, быстро делаем такую заглушку class UserRanks { private int id; private String name; private int rank; } @SuppressWarnings List<UserRanks> ranks = getHibTempl().findByNativeQuery(..... "select id, name, rank from tbl_Relations where group_id=12" .....); |
|||
|
||||
| Ares4322 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 339 Регистрация: 25.9.2007 Где: Россия, Москва Репутация: 2 Всего: 3 |
А вообще без заглушки можно? То есть я List (который по сути является набором записей из БД )в качестве ответа получил и как мне из него вытащить данные без класса?
|
|||
|
||||
| 5ad1sT |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 45 Регистрация: 10.2.2009 Репутация: нет Всего: нет |
А как Вы собираетесь оттуда данные получать? |
|||
|
||||
| Ares4322 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 339 Регистрация: 25.9.2007 Где: Россия, Москва Репутация: 2 Всего: 3 |
Ну я вот и спрашиваю можно ли так сделать или нет.
Или Вы хотите, чтобы теперь я отвечал? |
|||
|
||||
| MisterCleric |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1043 Регистрация: 16.2.2006 Где: Харьков, Украина Репутация: 33 Всего: 38 |
Такой пример годиться?
-------------------- ПРИШЕЛ, УВИДЕЛ - ПЕРЕПИСАЛ... |
|||
|
||||
| Ares4322 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 339 Регистрация: 25.9.2007 Где: Россия, Москва Репутация: 2 Всего: 3 |
А без xml это можно сделать, прямо в коде?
|
|||
|
||||
| MisterCleric |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1043 Регистрация: 16.2.2006 Где: Харьков, Украина Репутация: 33 Всего: 38 |
-------------------- ПРИШЕЛ, УВИДЕЛ - ПЕРЕПИСАЛ... |
|||
|
||||
| Ares4322 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 339 Регистрация: 25.9.2007 Где: Россия, Москва Репутация: 2 Всего: 3 |
вот сделал я так
А как мне потом данные полей запроса получить отсюда? |
|||
|
||||
| MisterCleric |
|
||||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1043 Регистрация: 16.2.2006 Где: Харьков, Украина Репутация: 33 Всего: 38 |
А текст ты вообще читал по той ссылке, что я предоставил? По-моему там четко написано:
а потом:
Что не понятно? -------------------- ПРИШЕЛ, УВИДЕЛ - ПЕРЕПИСАЛ... |
||||||
|
|||||||
| afon |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 85 Регистрация: 5.4.2008 Где: Украина, Киев Репутация: нет Всего: 1 |
MisterCleric сейчас достанет пистолет и всех постреляет
class SimpleCat { long id, String name, Date birthdate; } List<SimpleCat> cats = sess.createSQLQuery("SELECT * FROM CATS") .addScalar("ID", Hibernate.LONG) .addScalar("NAME") .addScalar("BIRTHDATE").asList() Это сообщение отредактировал(а) afon - 7.4.2010, 18:43 |
|||
|
||||
| MisterCleric |
|
||||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1043 Регистрация: 16.2.2006 Где: Харьков, Украина Репутация: 33 Всего: 38 |
Есть у меня такой пример с этими скалярами:
Вызывается оно так:
А разбирается так:
Авось да поможет... -------------------- ПРИШЕЛ, УВИДЕЛ - ПЕРЕПИСАЛ... |
||||||
|
|||||||
![]()
|
| Правила форума "Java" | |
|
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |