NHibernate, обновление столбца БД для вызова функции при сохранении объекта домена - PullRequest
1 голос
/ 25 мая 2010

У меня есть класс домена, который при сохранении в Oracle должен обновить столбец до sysdate. NHibernate должен генерировать только 1 SQL. например,

обновление лица установленного возраста = 12, штамп = sysdate где id = 1;

Можно ли это сделать?

РЕДАКТИРОВАНИЕ:

Может быть что-то вроде:

Person person = (Person)session.Get(typeof(Person), 1);
session.SetFunction(person, "stamp", Functions.CurrentTimestamp);
person.Age = 12;
session.Flush();

Ответы [ 2 ]

0 голосов
/ 25 мая 2010

Если вы хотите сделать это по требованию, вы можете просто выполнить запрос выше:

session.CreateQuery("update person set age = 12, stamp = sysdate where id = 1")
       .ExecuteUpdate();

Интересно, что это допустимый HQL и SQL.

0 голосов
/ 25 мая 2010

Вы можете обновить штамп с помощью триггера базы данных:

create trigger person_trg
before update
for each row
begin
    :new.stamp := sysdate;
end;

Тогда все, что нужно сделать в hibernate, это «сохранить» изменение возраста (например).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...