L'obtention de NHibernate erreur d'Exception de type " Antlr.Moment de l'exécution.NoViableAltException " a été levée
Je vais avoir quelques problèmes avec une requête sur une table qui contient un espace dans son nom, la
Si j'écris un code sql de la requête, il fonctionne très bien, c'est à dire SELECT * from [groupes], mais lors de l'utilisation de NHibernate CreateQuery tout se casse
using (ISession session = SessionFactory.OpenSession())
{
IQuery query = session.CreateQuery("FROM [product groups]");
IList<ProductGroups> results = query.List<ProductGroups>();
}
Va générer l'erreur
Exception de type " Antlr.Moment de l'exécution.NoViableAltException " a été levée.
près de la ligne 1, colonne 5 àNHibernate.Hql.Ast.ANTLR.ErrorCounter.ThrowQueryException() à
NHibernate.Hql.Ast.ANTLR.HqlParseEngine.Parse()
...
Si j'utilise un CreateSQLQuery il fonctionne
ISQLQuery query = session.CreateSQLQuery("SELECT ID, Title, [Available as develop] FROM [product groups]").AddEntity(typeof(ProductGroups));
IList<ProductGroups> results = query.List<ProductGroups>();
Le fichier de mappage ressemble à ceci
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" auto-import="true">
<class name="ListModels.ProductGroups, ListModels" lazy="true" table="Product groups">
<id name="ID">
<generator class="native" />
</id>
<property name="Title" />
<property name="AvailableAsDevelopmentLicense" column="Available as develop" />
</class>
</hibernate-mapping>
Pourquoi ne pas CreateQuery travail?
OriginalL'auteur Eric Herlitz | 2013-06-29
Vous devez vous connecter pour publier un commentaire.
La
CreateQuery()
, décrit ici: 9.3.2. Le IQuery interface, est la façon d'interroger votre Entités avec 14. HQL: Hibernate Query Language.I. e. vous devez utiliser votre domaine les noms de modèle
ProductGroups
au lieu de la table nom[product groups]
OriginalL'auteur Radim Köhler