2 votes

Quel est le problème avec cette requête HQL ?

J'essaie HQL, je suis un vrai n00b de NHibernate.

public IEnumerable<Log> GetLast(int numRecords, string severity)
{
    var query = _Session.CreateQuery(
        "from Log as l inner join fetch l.UserProfile order by l.TimeStamp desc where l.Severity in (:severities)")
        .SetParameterList("severities", Translator.SeverityOrHigher(severity))
        .SetMaxResults(numRecords)
        .Enumerable<Log>();

    return query;
}

Translator.SeverityOrHigher renvoie un IList<string> .

J'ai un Log qui fait référence à un UserProfiles de façon multiple. Les objets sont persistés dans la base de données en tant que Logs y UserProfiles respectivement.

J'obtiens l'exception suivante lors de l'exécution de l'opération suivante var query = ... ligne :

Exception of type 'Antlr.Runtime.MismatchedTokenException' was thrown.

Je n'ai aucune idée de ce que cela signifie, et une recherche sur Google n'a pas été particulièrement utile. Je ne sais pas s'il y a un problème avec le HQL ou la façon dont je l'ai configuré. Tout conseil serait apprécié.

2voto

Peter Aron Zentai Points 3760

Je n'ai pas utilisé NHib depuis longtemps... Avez-vous essayé de mettre l'instruction order by à la fin ? Probablement que ça marche comme ça, par je mets toujours à la fin.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X