zoukankan      html  css  js  c++  java
  • NHibernate的常见问题及解决方案

     

    问题

    异常:in expected: <end-of-text> (possibly an invalid or unmapped class name was used in the query) [from Customer]

    解决方案:查看HQL语句查询的是否是实体类,映射文件属性是否正确:复制到输出目录à始终复制 。。生成操作à嵌入的资源。

    问题2

    异常:缺少必需的属性“name”。

    解决方案:查看映射文件里,是否哪个<property>节点缺少name属性

    问题3

          异常:“NHibernate.Proxy.CastleProxyFactory”的类型初始值设定项引发异常。

       解决方案:Nhibernate版本问题。。删除数据访问层与界面层对Nhibernate的引用,改为引用nhibernate2.0组件,改配置文件(App.config/web.config),到NHibernate-.GA-src/src/NhibernateText下面复制app.config.中Nhibernate的配置信息。

    问题4

    异常:Could not find the dialect in the configuration

       解决方案:配置文件错误。WEB项目应在web.config配置文件里配置Nhibernate。应用程序在App.config里配置Nhibernate.

    问题5

          异常:could not resolve property: customerId of: CompanyModels.Customer [from CompanyModels.Customer c where c.customerId=:customerId]

    解决方案:HQL语句里字段是代表实体类的属性,区分大小写。

    问题6

        异常:不应有 <hibernate-mapping xmlns='urn:nhibernate-mapping-2.0'>。

          解决方案:把2.0改为2.2即可,在CodeSmith中生成映射文件时为2.0,而Nhibernate2对应2.2

    问题7

          异常:元素 命名空间“urn:nhibernate-mapping中的“bag”。 的子元素 命名空间“urn:nhibernate-mapping中的“many-to-many”。 无效。应为可能元素的列表: 命名空间“urn:nhibernate-mapping中的“loader, sql-insert, sql-update, sql-delete, sql-delete-all, filter”。。

           解决方案:多对多关系映射错误,看映射文件中<many-to-many>节点是否有多个,如果有请删除一个。只要引用对应的实体类即可。如:

    <bag name="OrderProducts" table="OrderProduct" inverse="false" lazy="true" cascade="all-delete-orphan">

                  <key>

                       <column name="`Order`" length="4" sql-type="int" not-null="true"/>

                  </key>

          <many-to-many class="CompanyModels.Order, CompanyModels">

            <column name="Order" length="4" sql-type="int" not-null="true"/>

          </many-to-many>

                  <many-to-many class="CompanyModels.Product, CompanyModels">

                       <column name="Product" length="4" sql-type="int" not-null="true"/>

                  </many-to-many>

             </bag>

    删除第一个<many-to-many>即可解决.

  • 相关阅读:
    IntelliJ IDEA 添加本地xsd文件
    Dubbox离线约束地址
    IDEA发布运行web项目(曾经遇到的项目启动报404)
    项目导入时报错:The import javax.servlet.http.HttpServletRequest cannot be resolved
    IDEA使用maven中tomcat插件来启动服务器配置
    NetCore实践篇:分布式监控客户端ZipkinTracer从入门到放弃之路
    .Net外包篇:我是怎么看待外包的(二)
    .Net外包篇:我是如何看待外包的
    .Net架构篇:思考如何设计一款实用的分布式监控系统?
    分布式Redis缓存串讲(一)
  • 原文地址:https://www.cnblogs.com/mandalaluo/p/3807474.html
Copyright © 2011-2022 走看看