|
|
|
Не получается написать запрос на HQL.
|
|||
|---|---|---|---|
|
#18+
Не получается написать запрос на HQL: Запрос на HQL, который не работает: Код: plaintext 1. 2. 3. 4. 5. Вот запрос на SQL, который работает: Код: plaintext 1. 2. 3. 4. 5. Причину того, что HQL запрос не работает, я вижу в том что у него в WHERE стоит условие ln.localeIndex = :localeIndex, а в SQL я его перенес в left join locality_name ln on ... and ln.locale_index = :localeIndex ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.08.2007, 12:35:37 |
|
||
|
Не получается написать запрос на HQL.
|
|||
|---|---|---|---|
|
#18+
может лог покажешь? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.08.2007, 12:46:10 |
|
||
|
Не получается написать запрос на HQL.
|
|||
|---|---|---|---|
|
#18+
А почему бы, не раскрутить все это используя операторы явы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.08.2007, 14:50:10 |
|
||
|
Не получается написать запрос на HQL.
|
|||
|---|---|---|---|
|
#18+
а долго потому что будет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.08.2007, 15:00:05 |
|
||
|
Не получается написать запрос на HQL.
|
|||
|---|---|---|---|
|
#18+
почему долго то? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.08.2007, 15:09:25 |
|
||
|
Не получается написать запрос на HQL.
|
|||
|---|---|---|---|
|
#18+
ncrА почему бы, не раскрутить все это используя операторы явы? тогда поясни что имел ввиду ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.08.2007, 16:58:50 |
|
||
|
Не получается написать запрос на HQL.
|
|||
|---|---|---|---|
|
#18+
Ну допустим имеется пару справочников (в примере Oleg Marshalenko я не совсем понял что являет собой какая таблица) и оперативная таблица. Для справочников получаем полный набор записей (допустим в HashMap<код, сущность>) для оперативной таблицы получаем записи по какому то критерию (т.к. все они редко когда нужны), далее по коду из оперативной таблицы берем значение из хешмапа. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.08.2007, 17:52:34 |
|
||
|
Не получается написать запрос на HQL.
|
|||
|---|---|---|---|
|
#18+
я вас поздравляю, но это откровенное извращение, которое даже не обсуждается что-то по моему у хорстмана было ... мол не пишите SQL сервер на HashMap-ах ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.08.2007, 18:25:53 |
|
||
|
Не получается написать запрос на HQL.
|
|||
|---|---|---|---|
|
#18+
В общем случае это правда - реализовавать nested loops на хэш мапах - жжесть. Но, как обычно, в отдельных случаях у такого подхода могут быть плюсы. К примеру, lookup по read-only таблице в ахриненных количествах. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.08.2007, 18:41:22 |
|
||
|
Не получается написать запрос на HQL.
|
|||
|---|---|---|---|
|
#18+
А можно в таком случае услышать правильный подход для решения такого рода задач? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.08.2007, 18:53:00 |
|
||
|
Не получается написать запрос на HQL.
|
|||
|---|---|---|---|
|
#18+
ncrА можно в таком случае услышать правильный подход для решения такого рода задач? SQL :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.08.2007, 19:06:08 |
|
||
|
Не получается написать запрос на HQL.
|
|||
|---|---|---|---|
|
#18+
В смысле HQL??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.08.2007, 19:11:57 |
|
||
|
Не получается написать запрос на HQL.
|
|||
|---|---|---|---|
|
#18+
exppможет лог покажешь? а что в нем можно увидеть, если запрос хибернейтом создается на подобии вот этого Код: plaintext 1. 2. 3. 4. 5. разница от рабочего запроса в том, что условие на ln.locale_index = :localeIndex находится в WHERE и в этом случае LEFT JOIN до одного места, а в рабочем запросе на SQL это условие находится в LEFT JOIN - в этом случае, если в таблице locality_name нет записи то и условие не будет отрабатывать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.08.2007, 20:49:50 |
|
||
|
Не получается написать запрос на HQL.
|
|||
|---|---|---|---|
|
#18+
ncrв примере Oleg Marshalenko я не совсем понял что являет собой какая таблица есть таблица region, которая содержит id и код региона; есть таблица region_locality_names - она связывает таблицы region и locality_name; и есть таблица locality_name где хранятся уникальные названия регионов и городов на разных языках. В java это описано так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. и класс LocalityName Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.08.2007, 20:59:09 |
|
||
|
Не получается написать запрос на HQL.
|
|||
|---|---|---|---|
|
#18+
Oleg Marshalenko exppможет лог покажешь? а что в нем можно увидеть, если запрос хибернейтом создается на подобии вот этого Код: plaintext 1. 2. 3. 4. 5. разница от рабочего запроса в том, что условие на ln.locale_index = :localeIndex находится в WHERE и в этом случае LEFT JOIN до одного места, а в рабочем запросе на SQL это условие находится в LEFT JOIN - в этом случае, если в таблице locality_name нет записи то и условие не будет отрабатывать maybe "with" would help? hibernate referencefrom Cat as cat left join cat.kittens as kitten with kitten.bodyWeight > 10.0 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.08.2007, 21:34:26 |
|
||
|
Не получается написать запрос на HQL.
|
|||
|---|---|---|---|
|
#18+
Спасибо большое! Вот получился рабочий HQL: Код: plaintext 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.08.2007, 01:49:58 |
|
||
|
Не получается написать запрос на HQL.
|
|||
|---|---|---|---|
|
#18+
Oleg Marshalenko..., что условие на ln.locale_index = :localeIndex находится в WHERE и в этом случае LEFT JOIN до одного места, а в рабочем запросе на SQL это условие находится в LEFT JOIN - в этом случае, е сли в таблице locality_name нет записи то и условие не будет отрабатывать я вобще-то думал,что в sql типа tristate logic и условия на нулевые кортежи можно накладывать. в чём проблема когда все праметры стоят в where ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.08.2007, 10:52:35 |
|
||
|
Не получается написать запрос на HQL.
|
|||
|---|---|---|---|
|
#18+
expp Oleg Marshalenko..., что условие на ln.locale_index = :localeIndex находится в WHERE и в этом случае LEFT JOIN до одного места, а в рабочем запросе на SQL это условие находится в LEFT JOIN - в этом случае, е сли в таблице locality_name нет записи то и условие не будет отрабатывать я вобще-то думал,что в sql типа tristate logic и условия на нулевые кортежи можно накладывать. в чём проблема когда все праметры стоят в where ? не понял. Как сделать лефт джойн через предикат? Можно конечно вывернуться дополнительным предикатом с проверкой на null, но зачем, если есть лефт джойн? ЗЫ. Я люблю, когда условия джойна записываются в самом джойне, а условие выборки - в предикате. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.08.2007, 11:13:27 |
|
||
|
Не получается написать запрос на HQL.
|
|||
|---|---|---|---|
|
#18+
в чём, бли проблема с Код: plaintext 1. 2. 3. это не работает? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.08.2007, 11:22:22 |
|
||
|
Не получается написать запрос на HQL.
|
|||
|---|---|---|---|
|
#18+
expp Oleg Marshalenko..., что условие на ln.locale_index = :localeIndex находится в WHERE и в этом случае LEFT JOIN до одного места, а в рабочем запросе на SQL это условие находится в LEFT JOIN - в этом случае, е сли в таблице locality_name нет записи то и условие не будет отрабатывать я вобще-то думал,что в sql типа tristate logic и условия на нулевые кортежи можно накладывать. в чём проблема когда все праметры стоят в where ? учи матчасть . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.08.2007, 11:24:30 |
|
||
|
Не получается написать запрос на HQL.
|
|||
|---|---|---|---|
|
#18+
exppв чём, бли проблема с Код: plaintext 1. 2. 3. это не работает? конечно нет! предыдущий запрос не равен следующему Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.08.2007, 11:26:31 |
|
||
|
Не получается написать запрос на HQL.
|
|||
|---|---|---|---|
|
#18+
А как написать встроенный запрос? Или такое HQL не умеет? вот имеется работающий запрос на SQL SELECT Second.title, First.myID, MT.Systemtime, FROM First, Second, (SELECT myID, Max(SystemTime) Systemtime FROM Third GROUP BY myID) MT WHERE First.myID = Second.myID AND Second.myID=MT.myID ORDER BY Length(First.myID), First.myID ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2007, 09:47:44 |
|
||
|
Не получается написать запрос на HQL.
|
|||
|---|---|---|---|
|
#18+
вот что получилось на HQL SELECT Second.title, First.myID FROM First, Second WHERE First.myID = Second.myID AND Second.myID=ANY(SELECT myID FROM Third GROUP BY myID) ORDER BY Length(First.myID), First.myID но при этом не получается достать поле Systemtime таблицы Third может быть ктонибудь знает, можно ли использовать результат запроса SELECT myID, MAX(Systemtime) FROM Third GROUP BY myID как таблицу в другом запросе? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2007, 10:27:13 |
|
||
|
|

start [/forum/topic.php?fid=59&gotonew=1&tid=2144713]: |
0ms |
get settings: |
14ms |
get forum list: |
20ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
48ms |
get topic data: |
14ms |
get first new msg: |
6ms |
get forum data: |
2ms |
get page messages: |
60ms |
get tp. blocked users: |
2ms |
| others: | 323ms |
| total: | 497ms |

| 0 / 0 |
