|
|
|
Трудности перехода от SQL к Hibernate
|
|||
|---|---|---|---|
|
#18+
Доброго времени суток! При разработке подсистемы оценки филиалов некоторого предприятия в результате анализа предметной области получил помимо всего прочего два класса-сущности: филиал и оценочный купон (такая бумажка, где покупатели могут оценить филиал по нескольким параметрам). Соответственно один филиал ассоциируется со многими оценочными купонами. На основе этих классов получается следующая реляционная модель данных: таблица филиалов и связанная с ней таблица купонов (в качестве внешнего ключа для связи с таблицей филиалов в таблице купонов используется идентификатор филиала). Оценка филиалов по купонам осуществляется следующим образом: сразу по некоторому хитрому алгоритму находится оценка купона, а затем берётся среднее арифметическое оценок всех купонов, соответствующих некоторому филиалу, - это и будет оценка филиала. При этом филиалы, для которых ищется оценка, отбираются по фильтрам, формируемым на основе опций, задаваемых пользователем. Разработка ведётся на Java. В конечном счёте подсистема должна обрести вид web-приложения. СУБД - Oracle. Как реализовать выборку данных посредством прямого взаимодействия с СУБД при помощи SQL я вобщем-то представляю - дело одного запроса, в результате которого получится рекордсет, содеражщий наименование филиала, его оценку и некоторые другие данные по филиалу. Проблема в том, что начальство загорелось идеей ORM в виде Hibernate. И вот тут начались проблемы. Общая идея мне вобщем то ясна - в объектной модели приложения используются объекты данных, а за их взаимодействие с реляционной СУБД отвечает Hibernate. Таким образом создаётся что-то вроде виртуальной ООСУБД. Вопросы возникают в деталях. Насколько я понял, в HQL в качестве источников данных используются объекты, а не таблицы. Т.е. в моём случае в поле FROM запроса будут фигурировать объекты Branch и Coupon. Или же какие-то коллекции этих объектов? В конце концов в системе фигурирует множество предприятий и множество купонов, а не единственные их экземпляры. Это первый вопрос, который у меня возник. Второй вопрос - в виде чего же я получу результат этого запроса? При прямом взаимодействии с СУБД всё ясно - результатом запроса будет набор записей. А при использовании Hibernate? Объект? Коллекция? Или ещё что-то? Пока вопросов больше нет. Понимаю, что вопросы наверно глупые. Но времени на то, чтобы самому найти информацию, пощупать ручками Hibernate и т.д. просто нет. Работать приходится в режиме жестокого дедматча. Начальник уже требует готовую модель. Кстати, если есть где-нибудь в сети пример UML-модели приложения, разработанного с использованием Hibernate, киньте ссылку plz. Заранее спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.05.2007, 00:32:16 |
|
||
|
Трудности перехода от SQL к Hibernate
|
|||
|---|---|---|---|
|
#18+
Прочитайте внимательно официальную документацию по hibernate. Там есть очень грамотный раздел целиком посвящённый HQL. Отпадёт очень много вопросов. Ответом на запрос HQL является то, что вы запросили. То есть вы сами определяете что является ответом на запрос, один обьект, коллекция, или просто мапа. Вообщем скачайте дистрибутив Hibernate и читайте туториал раздел HQL. Примеры найдёте там же. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.05.2007, 01:47:17 |
|
||
|
Трудности перехода от SQL к Hibernate
|
|||
|---|---|---|---|
|
#18+
Сколько времени выделили на освоение хибера? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.05.2007, 10:35:19 |
|
||
|
Трудности перехода от SQL к Hibernate
|
|||
|---|---|---|---|
|
#18+
я плакал (c) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.05.2007, 22:59:03 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=34498044&tid=2145854]: |
0ms |
get settings: |
8ms |
get forum list: |
22ms |
check forum access: |
6ms |
check topic access: |
6ms |
track hit: |
51ms |
get topic data: |
17ms |
get forum data: |
4ms |
get page messages: |
65ms |
get tp. blocked users: |
2ms |
| others: | 278ms |
| total: | 459ms |

| 0 / 0 |
