|
|
|
[nHib]
|
|||
|---|---|---|---|
|
#18+
Коллеги, добрый день Советуюсь как эффективно реализовать запрос, который будет переодически грузить сервер приложений. Происходит синхронизация. Если для Not_sync_price нашлась запись в Sync_record ее надо перетащить в синхранизованный Price. На sqlе это решалось просто: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. В хибернейте же мне непонятно, как это сделать на уровне объектов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2010, 10:05 |
|
||
|
[nHib]
|
|||
|---|---|---|---|
|
#18+
Ну тут у Вас в два этапа должны происходить манипуляуции: Выборка Код: plaintext 1. 2. 3. 4. Вставка Код: plaintext Как я понимаю, маппинг на Price у Вас уже готов. Как вариант, средствами динамики получаем прайсы (имеем поля sr.product_id,nsp.client_id,nsp.quantity,nsp.price_retail) и кастим в тип Price. Пример: Код: plaintext 1. 2. 3. 4. 5. 6. Теперь имея типизированный список (в моём случае это products) мы можем смело осуществлять его импорт через Ваш дал (насколько я помню, у Вас паттерн репозиторий). ...P.S. На будущее: приводите классы и маппинги ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2010, 11:13 |
|
||
|
[nHib]
|
|||
|---|---|---|---|
|
#18+
Отлично! CreateSQLQuery творит чудеса, особенно с приведением типов. Я пытался оставаться в рамках HQL, но мне не удавалось его заставить джойнить. Я подумал, что это из-за не совсем стандартных сущностей. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. PS МСУ, Вам еще раз спасибо. Пока Ваш совет ускоряет мой код на всех фронтах ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2010, 12:48 |
|
||
|
[nHib]
|
|||
|---|---|---|---|
|
#18+
HugCreateSQLQuery творит чудеса, особенно с приведением типов. Да, это верно :) Памятка: если нужно еще добавить условие WHERE, не нужно пихать значение в стрингу запроса, используйте параметризацию. sample Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. P.S. CreateSQLQuery используйте в самом крайнем случае, когда нет возможности решить задачу средствами объектной модели хиба, которая идет вразрез с маппингами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2010, 13:13 |
|
||
|
[nHib]
|
|||
|---|---|---|---|
|
#18+
А забыл спросить самое главное. О скорости.. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. Наши же с Вами 2 этапа мало того, что все равно загрузят БД звено, так еще и дадут погреться серверу приложений. А эта вещь, которая в демоне будет крутиться круглосуточно по нескольку раз в день. Стоит ли здесь быть принципиальным и следовать идеалогии? SP: Прямо так и подмывает вызвать sp, чем писать 2 этапа. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2010, 13:23 |
|
||
|
[nHib]
|
|||
|---|---|---|---|
|
#18+
МСУHugCreateSQLQuery творит чудеса, особенно с приведением типов. Да, это верно :) Памятка: если нужно еще добавить условие WHERE, не нужно пихать значение в стрингу запроса, используйте параметризацию. P.S. CreateSQLQuery используйте в самом крайнем случае, когда нет возможности решить задачу средствами объектной модели хиба, которая идет вразрез с маппингами. 1) Конечно. Запрос кешится, а параметры потом подставляются. 2) Так я и мучал hql. Понял, что не выкатывает) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2010, 13:25 |
|
||
|
[nHib]
|
|||
|---|---|---|---|
|
#18+
HugSP: Прямо так и подмывает вызвать sp, чем писать 2 этапа. Вопрос идеологический, да. Ну я бы Вам рекомендовал поразмыслить о быстродействии данной операции плюс помноженное на максимальное кол-во пользователей в единицу времени, которые исполняют данную манипуляцию. Если вопрос скорострельности стоит ребром - то конечно же хп. Если же данные манипуляции будет осуществлять одна бабушка на складе раз в час на табличках из тыщи записей, то думаю можно посмотреть в сторону "красивостей". P.S. Всё от задачи зависит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2010, 13:56 |
|
||
|
[nHib]
|
|||
|---|---|---|---|
|
#18+
Задача - постоянной работающий демон - мониторщик Перегружающий данные из 1 таблицы в другую.. ЗЫ Подмешал в репозиторий ado.net. Вкусно) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2010, 14:53 |
|
||
|
[nHib]
|
|||
|---|---|---|---|
|
#18+
HugЗЫ Подмешал в репозиторий ado.net. Вкусно) Нафига? :) Хиб отлично работает с хранимками. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2010, 15:02 |
|
||
|
[nHib]
|
|||
|---|---|---|---|
|
#18+
МСУHugЗЫ Подмешал в репозиторий ado.net. Вкусно) Нафига? :) Хиб отлично работает с хранимками. Вот засранцы. Все предусмотрели. Код: plaintext 1. 2. 3. Чеж они допускают прямой sql то. А если я уеду с mysql? Кто будет менять call на exec? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2010, 16:08 |
|
||
|
[nHib]
|
|||
|---|---|---|---|
|
#18+
HugМСУHugЗЫ Подмешал в репозиторий ado.net. Вкусно) Нафига? :) Хиб отлично работает с хранимками. Вот засранцы. Все предусмотрели. Код: plaintext 1. 2. 3. Чеж они допускают прямой sql то. А если я уеду с mysql? Кто будет менять call на exec? Я не уверен на счет мускула, но попробуйте такой маппинг (GetBooks - это хп): Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. Собственно, сам вызов: Код: plaintext 1. 2. P.S. А так, разумеется с хп нужно быть аккуратным. Не на всех sql-серверах маппинг сработает. Нужно тестить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2010, 16:28 |
|
||
|
|

start [/forum/topic.php?fid=17&msg=36428751&tid=1351498]: |
0ms |
get settings: |
11ms |
get forum list: |
19ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
46ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
47ms |
get tp. blocked users: |
1ms |
| others: | 251ms |
| total: | 393ms |

| 0 / 0 |
