J'essaie d'appeler une fonction de base de données de HQL. La déclaration HQL doit simplement appeler la fonction et retourner sa valeur, comme celui-ciInstructions HQL sans clause FROM et WHERE
select someFunction(:someParameter)
Si je tente d'appeler sélectionner current_timestamp()
.
Il échoue avec
NHibernate.Hql.Ast.ANTLR.QuerySyntaxException: Exception de type 'Antlr.Runtime.MismatchedTreeNodeException' a été levée. près de la ligne 1, colonne 24 [select current_timestamp()]
Je sais qu'il n'y a pas beaucoup de raisons de récupérer l'horodatage actuel. Mais j'ai créé quelques fonctions de base de données définies par l'utilisateur que je voudrais tester à l'unité en les appelant depuis HQL.
Il me semble qu'il n'est pas possible d'écrire une instruction HQL sans clause FROM et WHERE. Cela peut-il être vrai?
IQuery query = unitOfWork.Session.CreateQuery("select current_timestamp()");
var ts = query.UniqueResult();
1. Je suis d'accord. Je ne fais que pour tester les fonctions. –
2. Je pourrais ajouter une clause DUmmy FROM. L'inconvénient est que le test dépend alors d'une cartographie d'entité fictive. –