我正在玩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);
语法错误是“靠近组”我很确定问题出在组模式中,但是,我再也不知道在哪里可以获得更多细节。
答案 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"
。