问题1 :web
异常:in expected: <end-of-text> (possibly an invalid or unmapped class name was used in the query) [from Customer]sql
解决方案:查看HQL语句查询的是不是实体类,映射文件属性是否正确:复制到输出目录à始终复制 。。生成操做à嵌入的资源。app
问题2:hibernate
异常:缺乏必需的属性“name”。xml
解决方案:查看映射文件里,是否哪一个<property>节点缺乏name属性资源
问题3:it
异常:“NHibernate.Proxy.CastleProxyFactory”的类型初始值设定项引起异常。io
解决方案:Nhibernate版本问题。。删除数据访问层与界面层对Nhibernate的引用,改成引用nhibernate2.0组件,改配置文件(App.config/web.config),到NHibernate-.GA-src/src/NhibernateText下面复制app.config.中Nhibernate的配置信息。table
问题4、ast
异常: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>便可解决.