Я пытаюсь вызвать функцию базы данных от HQL. Оператор HQL должен просто вызвать функцию и возвращает его значение, как этотОперации HQL без предложения FROM и WHERE
select someFunction(:someParameter)
Если я пытаюсь позвонить выбрать current_timestamp()
.
Это терпит неудачу с
NHibernate.Hql.Ast.ANTLR.QuerySyntaxException: Исключение типа 'Antlr.Runtime.MismatchedTreeNodeException' было брошено. рядом строка 1, столбец 24 [select current_timestamp()]
Я знаю, что нет никакой причины для извлечения текущей метки времени. Но я создал несколько пользовательских функций базы данных, которые я бы хотел выполнить с помощью модульного теста, вызвав их из HQL.
Мне кажется, что невозможно написать инструкцию HQL без предложения FROM и WHERE. Может ли это быть правдой?
IQuery query = unitOfWork.Session.CreateQuery("select current_timestamp()");
var ts = query.UniqueResult();
1. Я согласен. Я делаю это только для проверки функций. –
2. Я могу добавить необязательный пункт FROM. Недостатком является то, что тогда тест зависит от некоторого фиктивного отображения сущности. –