Почему следующий HQL-запрос не выполняется?
string hql = @"delete MyLog log
where
log.UtcTimestamp < :threshold and
log.Configuration.Application = :application";
session.CreateQuery(hql)
.SetDateTime("threshold", threshold)
.SetEnum("application", this.application)
.ExecuteUpdate();
Такая же форма запроса работает при использовании в select:
string hql = @"from MyLog log
where
log.UtcTimestamp < :threshold and
log.Configuration.Application = :application";
IList<MyLog> log = session.CreateQuery(hql)
.SetDateTime("threshold", threshold)
.SetEnum("application", this.application)
.List<MyLog>();
Отображение для MyLog содержит:
References(x => x.Configuration)
.Columns("CONFIGURATION_ID")
.ReadOnly();
Отображение для конфигурации содержит:
Map(x => x.Application, "APPLICATION_ID");
Я получаю ошибку:
удалить из MYLOG, КОНФИГУРАЦИЯ
countercon1_ где UTC_TIMESTAMP <: p0
и APPLICATION_ID =: p1; : p0 =
10.04.2010 17:15:52,: p1 = 7 </p>
NHibernate.Exceptions.GenericADOException:
не удалось выполнить запрос на обновление [SQL:
удалить из MYLOG, КОНФИГУРАЦИЯ
countercon1_ где UTC_TIMESTAMP <? а также
APPLICATION_ID =? </p>
] --->
Oracle.DataAccess.Client.OracleException:
ORA-00933: команда SQL не правильно
закончился