8
votes

MySQL & NHibernate. Comment corriger l'erreur: la colonne 'réservéeword' n'appartient pas aux mots réservés de table?

"Je reçois une erreur étrange lors de l'utilisation de NHibernate. Et je ne sais pas ce qui cause cette erreur. Je suis nouveau dans l'ensemble du studio visuel et de NHibernate, mais pas d'hiberner. J'ai utilisé hibernate dans le passé dans des projets Java.

Toute aide serait appréciée pour me signaler où mon erreur est.

J'utilise Visual Studio 2008 SP1 avec MySQL 5.1.

ci-dessous est le code que j'utilise. "

Le code complet et les exemples sont affichés ici: https://forum.hibernate.org/viewtopic.php?f=25&t= 997701


0 commentaires

6 Réponses :


3
votes

Ma première hypothèse est que NHibernate identifie une colonne et / ou un nom de table en tant que mot réservé. Votre classe nommée «Hibernate» pourrait être un coupable probable, mais sans plus d'informations sur votre erreur, il est un peu difficile de suivre. Quelques suggestions:

  1. Essayez de renommer la table et les colonnes dans la base de données et configuration et donnez-lui un test
  2. Télécharger log4net ( http://logging.apache.org/log4net/download.html < / a>) et consultez https://www.hibernate.org/364.html pour le configurer pour NHibernate. Définissez-le à déboguer et à creuser dans le fichier journal et à voir les informations complètes sur la stacktrace / erreur que vous obtenez.

0 commentaires

10
votes

J'ai la même erreur, mais j'utilise MySQL + NHibernate (2.1.0ga) + mono (2.4) sous Ubuntu et ce lien m'a aidé, j'espère que cela fonctionne pour vous.

La clé est de l'utiliser dans Session-usine xxx

https://forum.hibernate.org/viewtopic.php?f=25&t=997701

C'était :)


1 commentaires

L'affiche sur ce forum indique: "Cependant, ce correctif pourrait causer des problèmes inattendus.". J'aimerais toujours savoir ce qui cause cela!



17
votes

FYI pour tous les débutants NHibernate / Nibernate Nibernate, Fastellanos, la solution de Fastellanos a également fonctionné pour moi (j'ai également eu l'erreur de Windows) et la méthode NHibernate fluide pour ajouter cette configuration est la suivante:

Fluently.Configure()
    ...
    .ExposeConfiguration(c => c.Properties.Add("hbm2ddl.keywords", "none"))
    ...
    .BuildSessionFactory()


0 commentaires

0
votes

Je viens de frapper cette question aussi. J'ai fini par faire ceci:

http://orbitalcoder.wordpress.com/2009/08/18/proposose-solution-for-the-nibernate-exception-Column-Reserved-Word-Does-not- Appartenant-à-table-Réservéwords /

Un code change à NHibernate, mais a travaillé pour moi.


0 commentaires

2
votes

Si cela le fait par programme, vous devez le faire comme tel: xxx


1 commentaires

Merci pour la solution, cela résolva mon problème pour Sybase SQL n'importe où



5
votes

Ceci résout la même erreur lors de l'utilisation de ActiveRecord pour NHibernate. Le bit pertinent est clé = "hbm2ddl.keywords" valeur = "aucune" et ceci va dans votre web.config.

<activerecord isWeb="true">
    <config>
        <add key="connection.driver_class" value="NHibernate.Driver.MySqlDataDriver"/>
        <add key="dialect" value="NHibernate.Dialect.MySQLDialect"/>
        <add key="connection.provider" value="NHibernate.Connection.DriverConnectionProvider"/>
        <add key="connection.connection_string_name" value="BrochureDb"/>
        <add key="proxyfactory.factory_class" value="NHibernate.ByteCode.Castle.ProxyFactoryFactory, NHibernate.ByteCode.Castle"/>
        <add key="hbm2ddl.keywords" value="none" />
    </config>
</activerecord>


0 commentaires