MySQL& NHibernate的。如何修复错误:列'ReservedWord'不属于表ReservedWords?

时间:2009-06-29 23:47:52

标签: mysql nhibernate nhibernate-mapping

“使用NHibernate时出现了一个奇怪的错误。我不知道是什么导致了这个错误。 我是整个Visual Studio和NHibernate的新手,但不是Hibernate。我过去在Java项目中使用过Hibernate。

在向我指出错误的位置时,我们将不胜感激。

我正在使用Visual Studio 2008 SP1和Mysql 5.1。

以下是我正在使用的代码。 “

完整的代码和示例发布在这里: https://forum.hibernate.org/viewtopic.php?f=25&t=997701

6 个答案:

答案 0 :(得分:17)

对于像我这样的NHibernate / Fluent NHibernate新手来说,FCastellanos的解决方案也适用于我(我在Windows上也得到了错误),并且Fluent NHibernate添加该配置的方式是:

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

答案 1 :(得分:10)

我得到了同样的错误,但我在Ubuntu下使用了MySQL + NHibernate(2.1.0GA)+ Mono(2.4),这个链接帮助了我,希望它适合你。

关键是在会话工厂中使用它

<property name="hbm2ddl.keywords">none</property>

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

就是这样:))

答案 2 :(得分:5)

使用ActiveRecord for NHibernate时,这解决了同样的错误。相关位是key =“hbm2ddl.keywords”value =“none”,这在你的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>

答案 3 :(得分:3)

我的第一个猜测是NHibernate将列和/或表名称标识为保留字。你的名为“hibernate”的类可能是一个可能的罪魁祸首,但如果没有关于你的错误的更多信息,那么有点难以追查。一些建议:

  1. 尝试重命名数据库和配置中的表和列并进行测试
  2. 下载log4net(http://logging.apache.org/log4net/download.html)并查看https://www.hibernate.org/364.html以将其配置为nhibernate。将其设置为调试并深入查看日志文件,并查看有关stacktrace / error的完整信息。

答案 4 :(得分:2)

如果以编程方式执行,您应该这样做:

cfg.SetProperty(NHibernate.Cfg.Environment.Hbm2ddlKeyWords, "none");

答案 5 :(得分:0)

我也遇到了这个问题。我最终这样做了:

http://orbitalcoder.wordpress.com/2009/08/18/proposed-solution-for-the-nhibernate-exception-column-reserved-word-does-not-belong-to-table-reservedwords/

这是对NHibernate的代码更改,但对我有用。