2013-09-10 4 views
0

Я новичок в hibernate и работаю над проектом, где мне нужно извлечь данные из БД с помощью сложного запроса. Так вот, например: Пусть есть таблицы Студент, Посещаемость, Тема и т. Д. Студент содержит (имя (предположительно первичный ключ), класс, возраст, пол .. и другие данные студента). Посещаемость (имя студента,% посещения). Тема содержит (студент, предметы)Hibernate: запросы с несколькими таблицами

Мне нужно извлечь данные для запросов, как

q1: (возраст> 20 & & возраст < 22)

q2: класс == Engineering

q3: должен содержать алгоритм как предмет. ученик с (q1 || q2) & & q3.

Даже запрос может быть еще более сложным. как ((q1 & & q2) || (q3 & & q4)) & & q5 ..

У меня есть несколько вопросов: Предполагая, что все таблицы имеют тот же первичный ключ (и я беру присоединиться на этом).

  1. Что является лучшим и наиболее эффективным способом его осуществления.

  2. Можно ли написать один запрос для такого сложного выражения и, если возможно, это ?

  3. Если невозможно написать для него один запрос. Я могу придумать, как его вычислять как постфиксное выражение, кажется грязным?

4.My понимание, если q1 и q2 принадлежит к тому же таблице, и/или где пункт будет работать, но если они принадлежат к другой таблице, если нужно принять присоединиться и то условие должно быть применено. Правильно ?

Если что-то кажется глупым в моем вопросе, я сожалею об этом всего за 2 дня назад. Я начал работать над этим. Любой полезный ресурс для чтения будет полезен.

ответ

0

Да, вы можете создавать довольно сложные запросы с помощью одного оператора. Возможно, вы захотите изучить подзапросы. Что касается того, рекомендуется ли это или нет, все зависит от плана выполнения, который потребует выбора в реальных наборах данных.

надеюсь, что это поможет.

Смежные вопросы