如何解决Hibernate中的架构问题?

时间:2009-10-23 13:52:14

标签: c# asp.net nhibernate

我正在玩Hibernate一点点。我创建了一个“Group”类和一个绑定它的XML模式。不幸的是,当我尝试导出该架构时,我的.NET抱怨语法错误。我很确定我的架构格式不正确,但是有什么技术可以帮助排除故障吗?

我的XML架构如下所示:

<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
               assembly="Folke"
               namespace="Folke.Code.Domain">
  <class name="Group">
    <id name="Id">
      <generator class="native"></generator>
    </id>
    <property name="SiteId" />
    <property name="Name" index="GroupName"/>
  </class>
</hibernate-mapping>

ASP.NET抱怨这里存在语法错误:

new SchemaExport(HibernateModule.CurrentConfiguration).Execute(false, true, false, false);

语法错误是“靠近组”我很确定问题出在组模式中,但是,我再也不知道在哪里可以获得更多细节。

2 个答案:

答案 0 :(得分:2)

“Group”是SQL中的保留字(GROUP BY子句名称的一部分)。

考虑以不同的方式命名您的类,或者通过table映射中的class属性明确指定不同的表名:

<class name="Group" table="MyGroups">

答案 1 :(得分:1)

如果要保留Group表名,可以使用类映射的table属性中的反引号字符引用它。例如:

<class name="Group" table="`Group`">  

这将导致在生成SQL时使用的任何方言中引用表名。例如,MSSQL T-Sql中的[Group]或DB2 SQL中的"Group"