首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >GenericADOException:无法插入

GenericADOException:无法插入
EN

Stack Overflow用户
提问于 2012-04-27 15:12:08
回答 1查看 3.9K关注 0票数 3

我试图将我的order对象保存在与表pastaIndividual有多对一关系的数据库中。

但是,我得到了一个例外:

错误: NHibernate.Exceptions.GenericADOException:无法插入: FrancosPoS.DBMapping.order --> MySql.Data.MySqlClient.MySqlException:您的SQL语法有错误;检查与MySQL服务器版本对应的手册,以获得使用接近“order(价格、现金、信用、obs)值”值('123‘、1、0、’Nhibernate‘)的正确语法;在第1行选择LAST_。

这是我的订单映射表:

代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8"?>
<hibernate-mapping assembly="FrancosPoS" namespace="FrancosPoS.DBMapping" xmlns="urn:nhibernate-mapping-2.2">
  <class name="order" table="order" lazy="true" >
    <id name="idOrder">
      <generator class="identity" />
    </id>
    <set name="pastaIndividual" table="pasta_individual" cascade="save-update">
      <key column="idPastaI"/>
      <one-to-many class="pastaIndividual"/>
    </set>
    <!--<many-to-one insert="false" update="false" lazy="false" name="pastaIndividual" class="FrancosPoS.DBMapping.pastaIndividual">
      <column name="idPastaI" sql-type="int(11)" not-null="false" />
    </many-to-one>-->
    <many-to-one insert="false" update="false" lazy="false" name="pastaCombo" class="FrancosPoS.DBMapping.pastaCombo">
      <column name="idPastaC" sql-type="int(11)" not-null="false" />
    </many-to-one>
    <many-to-one insert="false" update="false" lazy="false" name="pastaFeast" class="FrancosPoS.DBMapping.pastaFeast">
      <column name="idPastaF" sql-type="int(11)" not-null="false" />
    </many-to-one>
    <many-to-one insert="false" update="false" lazy="false" name="salad" class="FrancosPoS.DBMapping.salad">
      <column name="idSalad" sql-type="int(11)" not-null="false" />
    </many-to-one>
    <many-to-one insert="false" update="false" lazy="false" name="drink" class="FrancosPoS.DBMapping.drink">
      <column name="idDrink" sql-type="int(11)" not-null="false" />
    </many-to-one>
    <property name="price">
      <column name="price" sql-type="decimal(8,4)" not-null="true" />
    </property>
    <property name="cash">
      <column name="cash" sql-type="tinyint(1)" not-null="false" />
    </property>
    <property name="credit">
      <column name="credit" sql-type="tinyint(1)" not-null="false" />
    </property>
    <property name="obs">
      <column name="obs" sql-type="varchar(150)" not-null="false" />
    </property>
  </class>
</hibernate-mapping>

下面是我的pastaIndividual映射:

代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8"?>
<hibernate-mapping assembly="FrancosPoS" namespace="FrancosPoS.DBMapping" xmlns="urn:nhibernate-mapping-2.2">
  <class name="pastaIndividual" table="pasta_individual" lazy="true" >
    <id name="idPastaI">
      <generator class="identity" />
    </id>
    <property name="type">
      <column name="type" sql-type="varchar(25)" not-null="true" />
    </property>
    <property name="price">
      <column name="price" sql-type="decimal(8,4)" not-null="true" />
    </property>
  </class>
</hibernate-mapping>

我尝试过使用order映射来使用<set>或只使用<many-to-one>,但同样的错误也会发生。

也许我失去了一些逆属性?

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-04-27 19:05:11

秩序是一个保留的词。只需在类定义中添加一些回签,NHibernate就会自动为您转义表名。

代码语言:javascript
复制
 <class name="order" table="`order`" lazy="true" >
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10353200

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档