powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Nhibernate. Поля, связанные с системными переменными СУБД (SYSDATE)
20 сообщений из 20, страница 1 из 1
Nhibernate. Поля, связанные с системными переменными СУБД (SYSDATE)
    #36756290
Курдль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день, коллеги!
Имею в составе класса поле, которое должно получать свое значение в момент добавления (или модификации) экземпляра объекта в БД.
Для ADO.NET это бы довольно просто отразилось в тексте Command:
Код: plaintext
1.
2.
3.
4.
insert into BOO (BOO_ID, BOO_DATE) values (SEQ_BOO_ID.Nextval, Sysdate)
/
update BOO set BOO_DATE = Sysdate where BOO_ID = :BOO_ID
/

Как такое поле оформить в Nhibernate?
...
Рейтинг: 0 / 0
Nhibernate. Поля, связанные с системными переменными СУБД (SYSDATE)
    #36756469
Фотография pation
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
сделайте триггер и еб-те мосг
...
Рейтинг: 0 / 0
Nhibernate. Поля, связанные с системными переменными СУБД (SYSDATE)
    #36756583
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IIdentifierGenerator?
...
Рейтинг: 0 / 0
Nhibernate. Поля, связанные с системными переменными СУБД (SYSDATE)
    #36756585
Курдль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pation,
Триггер где?
Накой мне тогда Nhibernate, если я под каждую СУБД буду с бубном танцевать?
...
Рейтинг: 0 / 0
Nhibernate. Поля, связанные с системными переменными СУБД (SYSDATE)
    #36756594
Курдль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУIIdentifierGenerator?
Предположим, можно задать SYSDATE в качестве генератора идентификатора...
Можно ли дать такой мэппинг для не-идентификатора?
...
Рейтинг: 0 / 0
Nhibernate. Поля, связанные с системными переменными СУБД (SYSDATE)
    #36756786
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
КурдльМожно ли дать такой мэппинг для не-идентификатора?
Можно. В "момент добавления (или модификации)" нужно произвести необходимые вычисления.
У Вас возникнет вопрос: "как внедрить код в этот самый момент".
Ответ: используйте обертку DAL и в ней работайте. Например, используйте паттерн репозиторий. В момент сохранения (не ISession.SaveOrUpdate, а IRepository.SaveOrUpdate) и получайте своё значение.
Идея понятна?

P.S. Как дела обстоят с прошлым сабжем? Некрасиво оставлять тред без итогов.
...
Рейтинг: 0 / 0
Nhibernate. Поля, связанные с системными переменными СУБД (SYSDATE)
    #36756838
Курдль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУ,
идея понятна.
Я использую репозиторий.
Проблема в этой части: "...и получайте своё значение".
Какое? "DateTime.Now"?
Мне нужна системная дата СУБД!
...
Рейтинг: 0 / 0
Nhibernate. Поля, связанные с системными переменными СУБД (SYSDATE)
    #36756910
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
КурдльКакое? "DateTime.Now"? Мне нужна системная дата СУБД!
Нужна системная дата СУБД - обращайтесь к СУБД и получайте её.
Если речь о получении даты в контексте исполняемого батча - используйте default value поля или хп.
В чём сложность?

МСУP.S. Как дела обстоят с прошлым сабжем? Некрасиво оставлять тред без итогов.[/quote]
Курдль, игнор?
...
Рейтинг: 0 / 0
Nhibernate. Поля, связанные с системными переменными СУБД (SYSDATE)
    #36756918
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУиспользуйте default value поля или хп
+ Computed Column Specification (formula)
...
Рейтинг: 0 / 0
Nhibernate. Поля, связанные с системными переменными СУБД (SYSDATE)
    #36756988
Курдль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУ,

Извиняюсь! Не прочел Ваше сообщение о прошлом посте (но меня можно извинить - оно мелкое и выделено серым! ;)

Кстати, это защитная реакция на всякую "многозначительную" чушь, которую любят прицеплять к своему сообщению некоторые постеры.

Сейчас в ту ветку отпишусь.
...
Рейтинг: 0 / 0
Nhibernate. Поля, связанные с системными переменными СУБД (SYSDATE)
    #36757009
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
offКурдльоно мелкое и выделено серым!

Потому что оно как бы не относится к каррент треду :)
...
Рейтинг: 0 / 0
Nhibernate. Поля, связанные с системными переменными СУБД (SYSDATE)
    #36757016
Курдль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУМСУиспользуйте default value поля или хп
+ Computed Column Specification (formula)

Видимо так! Надо попробовать.
Но займусь этим позже. Сейчас из ситуации выкрутился.
Мне нужно было получить однозначно более поздний объект. В принципе, согласно логике моей БД это можно сделать и по ID.
...
Рейтинг: 0 / 0
Nhibernate. Поля, связанные с системными переменными СУБД (SYSDATE)
    #36757021
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Курдль, не в обиду будет сказано, но у Вас условия задачи меняются на лету достаточно перманентно
...
Рейтинг: 0 / 0
Nhibernate. Поля, связанные с системными переменными СУБД (SYSDATE)
    #36757058
Курдль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУКурдль, не в обиду будет сказано, но у Вас условия задачи меняются на лету достаточно перманентно
Почему? Условия задачи не меняются. Меняются варианты их реализации. Приходится идти на "сделку с совестью" ради скорости. Но если риск невелик - можно не волноваться.

Условия из логики предметной области такие: нужно упорядочить некие объекты строго по времени их создания. Есть служебное поле ДАТА_СОЗДАНИЯ. По логике доступа никто, кроме сервера, его менять не может. Значение ему должно присваиваться строго по времени сервера.
Но по перечисленным характеристикам это служебное поле ведет себя, как идентификатор.
Значит можно применить для упорядочивания идентификатор, нарушив логику предметной области, но не нарушив логику автоматизированной системы.
...
Рейтинг: 0 / 0
Nhibernate. Поля, связанные с системными переменными СУБД (SYSDATE)
    #36757088
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
КурдльПочему? Условия задачи не меняются. Меняются варианты их реализации

Да уж,

КурдльКакое? "DateTime.Now"? Мне нужна системная дата СУБД!

КурдльМне нужно было получить однозначно более поздний объект. В принципе, согласно логике моей БД это можно сделать и по ID.

то-ли Вы перегрелись на солнышке, то-ли я нуб
...
Рейтинг: 0 / 0
Nhibernate. Поля, связанные с системными переменными СУБД (SYSDATE)
    #36757114
Курдль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУ,
это Вы, похоже, уже к пиву приложились! ;)

Задача.
Есть экземпляры А и В неважно_какой_сущности.
Какой из них создан позже?
Вариант 1: Тот, у которого в поле ДАТА_СОЗДАНИЯ прописана более поздняя дата.
Вариант 2: Тот, у которого больше значение идентификатора.
Применив 2-й вариант я ничем не рискую, пока логика предметной области не изменится и кому-то не взбредет править вручную поле ДАТА_СОЗДАНИЯ.
...
Рейтинг: 0 / 0
Nhibernate. Поля, связанные с системными переменными СУБД (SYSDATE)
    #36757123
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
КурдльМСУ, это Вы, похоже, уже к пиву приложились! ;)
Нет, атец, это Вы не научились чётко формулировать вопросы :)

1МСУМожно. В "момент добавления (или модификации)" нужно произвести необходимые вычисления.
У Вас возникнет вопрос: "как внедрить код в этот самый момент".
Ответ: используйте обертку DAL и в ней работайте. Например, используйте паттерн репозиторий. В момент сохранения (не ISession.SaveOrUpdate, а IRepository.SaveOrUpdate) и получайте своё значение.
Идея понятна?


2КурдльМСУ,
идея понятна.
Я использую репозиторий.
Проблема в этой части: "...и получайте своё значение".
Какое? "DateTime.Now"?
Мне нужна системная дата СУБД!


И тут выясняется, что

3КурдльМне нужно было получить однозначно более поздний объект. В принципе, согласно логике моей БД это можно сделать и по ID.


P.S. Что курим, что пьем?
...
Рейтинг: 0 / 0
Nhibernate. Поля, связанные с системными переменными СУБД (SYSDATE)
    #36759211
Dmitdd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Курдль
Мне нужно было получить однозначно более поздний объект. В принципе, согласно логике моей БД это можно сделать и по ID.
Посмотрите тип данных TIMESTAMP в БД и его же использование в NHibernate
...
Рейтинг: 0 / 0
Nhibernate. Поля, связанные с системными переменными СУБД (SYSDATE)
    #36759244
Курдль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dmitdd,

Спасибо! Посмотрел. В БД - классный такой тип!
А куда конкретно смотреть в Nhibernate в этой связи?
...
Рейтинг: 0 / 0
Nhibernate. Поля, связанные с системными переменными СУБД (SYSDATE)
    #36759302
Dmitdd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Курдль
А куда конкретно смотреть в Nhibernate в этой связи?
в документации поиск по TIMESTAMP
5.1.8. timestamp (optional) (chm-файл документации)
ну и примеры использования какие найдете в документации
...
Рейтинг: 0 / 0
20 сообщений из 20, страница 1 из 1
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Nhibernate. Поля, связанные с системными переменными СУБД (SYSDATE)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]