Je vais avoir quelques problèmes avec une requête d'une table qui comprend un espace dans son nomerreur NHibernate Exception de type « Antlr.Runtime.NoViableAltException » a été jeté
Si j'écris une requête SQL il fonctionne très bien, par exemple SELECT * FROM [groupes de produits], mais lorsque vous utilisez tout NHibernate CreateQuery casse
using (ISession session = SessionFactory.OpenSession())
{
IQuery query = session.CreateQuery("FROM [product groups]");
IList<ProductGroups> results = query.List<ProductGroups>();
}
génère l'erreur
Exception de type 'Antlr.Runtime.NoViableAltException' a été lancé. 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 cela 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 CreateQuery ne fonctionnerait-il pas?
Ceci est parfaitement correct, je devais aussi régler le paramètre de table dans la classe dans le fichier HBM, merci. –