|
|
|
Nhibernate. Поля, связанные с системными переменными СУБД (SYSDATE)
|
|||
|---|---|---|---|
|
#18+
Добрый день, коллеги! Имею в составе класса поле, которое должно получать свое значение в момент добавления (или модификации) экземпляра объекта в БД. Для ADO.NET это бы довольно просто отразилось в тексте Command: Код: plaintext 1. 2. 3. 4. Как такое поле оформить в Nhibernate? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2010, 12:41 |
|
||
|
Nhibernate. Поля, связанные с системными переменными СУБД (SYSDATE)
|
|||
|---|---|---|---|
|
#18+
сделайте триггер и еб-те мосг ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2010, 13:38 |
|
||
|
Nhibernate. Поля, связанные с системными переменными СУБД (SYSDATE)
|
|||
|---|---|---|---|
|
#18+
IIdentifierGenerator? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2010, 14:24 |
|
||
|
Nhibernate. Поля, связанные с системными переменными СУБД (SYSDATE)
|
|||
|---|---|---|---|
|
#18+
pation, Триггер где? Накой мне тогда Nhibernate, если я под каждую СУБД буду с бубном танцевать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2010, 14:25 |
|
||
|
Nhibernate. Поля, связанные с системными переменными СУБД (SYSDATE)
|
|||
|---|---|---|---|
|
#18+
МСУIIdentifierGenerator? Предположим, можно задать SYSDATE в качестве генератора идентификатора... Можно ли дать такой мэппинг для не-идентификатора? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2010, 14:27 |
|
||
|
Nhibernate. Поля, связанные с системными переменными СУБД (SYSDATE)
|
|||
|---|---|---|---|
|
#18+
КурдльМожно ли дать такой мэппинг для не-идентификатора? Можно. В "момент добавления (или модификации)" нужно произвести необходимые вычисления. У Вас возникнет вопрос: "как внедрить код в этот самый момент". Ответ: используйте обертку DAL и в ней работайте. Например, используйте паттерн репозиторий. В момент сохранения (не ISession.SaveOrUpdate, а IRepository.SaveOrUpdate) и получайте своё значение. Идея понятна? P.S. Как дела обстоят с прошлым сабжем? Некрасиво оставлять тред без итогов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2010, 15:32 |
|
||
|
Nhibernate. Поля, связанные с системными переменными СУБД (SYSDATE)
|
|||
|---|---|---|---|
|
#18+
МСУ, идея понятна. Я использую репозиторий. Проблема в этой части: "...и получайте своё значение". Какое? "DateTime.Now"? Мне нужна системная дата СУБД! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2010, 15:48 |
|
||
|
Nhibernate. Поля, связанные с системными переменными СУБД (SYSDATE)
|
|||
|---|---|---|---|
|
#18+
КурдльКакое? "DateTime.Now"? Мне нужна системная дата СУБД! Нужна системная дата СУБД - обращайтесь к СУБД и получайте её. Если речь о получении даты в контексте исполняемого батча - используйте default value поля или хп. В чём сложность? МСУP.S. Как дела обстоят с прошлым сабжем? Некрасиво оставлять тред без итогов.[/quote] Курдль, игнор? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2010, 16:10 |
|
||
|
Nhibernate. Поля, связанные с системными переменными СУБД (SYSDATE)
|
|||
|---|---|---|---|
|
#18+
МСУиспользуйте default value поля или хп + Computed Column Specification (formula) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2010, 16:12 |
|
||
|
Nhibernate. Поля, связанные с системными переменными СУБД (SYSDATE)
|
|||
|---|---|---|---|
|
#18+
МСУ, Извиняюсь! Не прочел Ваше сообщение о прошлом посте (но меня можно извинить - оно мелкое и выделено серым! ;) Кстати, это защитная реакция на всякую "многозначительную" чушь, которую любят прицеплять к своему сообщению некоторые постеры. Сейчас в ту ветку отпишусь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2010, 16:41 |
|
||
|
Nhibernate. Поля, связанные с системными переменными СУБД (SYSDATE)
|
|||
|---|---|---|---|
|
#18+
offКурдльоно мелкое и выделено серым! Потому что оно как бы не относится к каррент треду :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2010, 16:46 |
|
||
|
Nhibernate. Поля, связанные с системными переменными СУБД (SYSDATE)
|
|||
|---|---|---|---|
|
#18+
МСУМСУиспользуйте default value поля или хп + Computed Column Specification (formula) Видимо так! Надо попробовать. Но займусь этим позже. Сейчас из ситуации выкрутился. Мне нужно было получить однозначно более поздний объект. В принципе, согласно логике моей БД это можно сделать и по ID. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2010, 16:47 |
|
||
|
Nhibernate. Поля, связанные с системными переменными СУБД (SYSDATE)
|
|||
|---|---|---|---|
|
#18+
Курдль, не в обиду будет сказано, но у Вас условия задачи меняются на лету достаточно перманентно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2010, 16:50 |
|
||
|
Nhibernate. Поля, связанные с системными переменными СУБД (SYSDATE)
|
|||
|---|---|---|---|
|
#18+
МСУКурдль, не в обиду будет сказано, но у Вас условия задачи меняются на лету достаточно перманентно Почему? Условия задачи не меняются. Меняются варианты их реализации. Приходится идти на "сделку с совестью" ради скорости. Но если риск невелик - можно не волноваться. Условия из логики предметной области такие: нужно упорядочить некие объекты строго по времени их создания. Есть служебное поле ДАТА_СОЗДАНИЯ. По логике доступа никто, кроме сервера, его менять не может. Значение ему должно присваиваться строго по времени сервера. Но по перечисленным характеристикам это служебное поле ведет себя, как идентификатор. Значит можно применить для упорядочивания идентификатор, нарушив логику предметной области, но не нарушив логику автоматизированной системы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2010, 17:02 |
|
||
|
Nhibernate. Поля, связанные с системными переменными СУБД (SYSDATE)
|
|||
|---|---|---|---|
|
#18+
КурдльПочему? Условия задачи не меняются. Меняются варианты их реализации Да уж, КурдльКакое? "DateTime.Now"? Мне нужна системная дата СУБД! КурдльМне нужно было получить однозначно более поздний объект. В принципе, согласно логике моей БД это можно сделать и по ID. то-ли Вы перегрелись на солнышке, то-ли я нуб ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2010, 17:17 |
|
||
|
Nhibernate. Поля, связанные с системными переменными СУБД (SYSDATE)
|
|||
|---|---|---|---|
|
#18+
МСУ, это Вы, похоже, уже к пиву приложились! ;) Задача. Есть экземпляры А и В неважно_какой_сущности. Какой из них создан позже? Вариант 1: Тот, у которого в поле ДАТА_СОЗДАНИЯ прописана более поздняя дата. Вариант 2: Тот, у которого больше значение идентификатора. Применив 2-й вариант я ничем не рискую, пока логика предметной области не изменится и кому-то не взбредет править вручную поле ДАТА_СОЗДАНИЯ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2010, 17:30 |
|
||
|
Nhibernate. Поля, связанные с системными переменными СУБД (SYSDATE)
|
|||
|---|---|---|---|
|
#18+
КурдльМСУ, это Вы, похоже, уже к пиву приложились! ;) Нет, атец, это Вы не научились чётко формулировать вопросы :) 1МСУМожно. В "момент добавления (или модификации)" нужно произвести необходимые вычисления. У Вас возникнет вопрос: "как внедрить код в этот самый момент". Ответ: используйте обертку DAL и в ней работайте. Например, используйте паттерн репозиторий. В момент сохранения (не ISession.SaveOrUpdate, а IRepository.SaveOrUpdate) и получайте своё значение. Идея понятна? 2КурдльМСУ, идея понятна. Я использую репозиторий. Проблема в этой части: "...и получайте своё значение". Какое? "DateTime.Now"? Мне нужна системная дата СУБД! И тут выясняется, что 3КурдльМне нужно было получить однозначно более поздний объект. В принципе, согласно логике моей БД это можно сделать и по ID. P.S. Что курим, что пьем? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2010, 17:34 |
|
||
|
Nhibernate. Поля, связанные с системными переменными СУБД (SYSDATE)
|
|||
|---|---|---|---|
|
#18+
Курдль Мне нужно было получить однозначно более поздний объект. В принципе, согласно логике моей БД это можно сделать и по ID. Посмотрите тип данных TIMESTAMP в БД и его же использование в NHibernate ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2010, 12:36 |
|
||
|
Nhibernate. Поля, связанные с системными переменными СУБД (SYSDATE)
|
|||
|---|---|---|---|
|
#18+
Dmitdd, Спасибо! Посмотрел. В БД - классный такой тип! А куда конкретно смотреть в Nhibernate в этой связи? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2010, 12:43 |
|
||
|
Nhibernate. Поля, связанные с системными переменными СУБД (SYSDATE)
|
|||
|---|---|---|---|
|
#18+
Курдль А куда конкретно смотреть в Nhibernate в этой связи? в документации поиск по TIMESTAMP 5.1.8. timestamp (optional) (chm-файл документации) ну и примеры использования какие найдете в документации ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2010, 13:02 |
|
||
|
|

start [/forum/topic.php?fid=17&msg=36756786&tid=1351171]: |
0ms |
get settings: |
8ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
178ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
63ms |
get tp. blocked users: |
1ms |
| others: | 241ms |
| total: | 524ms |

| 0 / 0 |
