NHibernate2.1.0GA,在使用过程中,出现以下错误提示:
“KeyNotFoundException: 给定关键字不在字典中。”
找问题我找了一天,是map文件中的相关的HQL使用了关键字。(“member”,这个以前是可以用的,现在不能用了。)
大家如果也有此问题,查排查你的HQL和map文件中的query的定义。
具体错误信息为:
[KeyNotFoundException: 给定关键字不在字典中。]
System.ThrowHelper.ThrowKeyNotFoundException() +28
System.Collections.Generic.Dictionary`2.get_Item(TKey key) +2668548
NHibernate.Param.ParameterTranslationsImpl.GetNamedParameterInfo(String name) +32
NHibernate.Param.ParameterTranslationsImpl.GetNamedParameterExpectedType(String name) +30
NHibernate.Engine.Query.HQLQueryPlan.BuildParameterMetadata(IParameterTranslations parameterTranslations, String hql) +956
NHibernate.Engine.Query.HQLQueryPlan..ctor(String hql, String collectionRole, Boolean shallow, IDictionary`2 enabledFilters, ISessionFactoryImplementor factory) +924
NHibernate.Engine.Query.HQLQueryPlan..ctor(String hql, Boolean shallow, IDictionary`2 enabledFilters, ISessionFactoryImplementor factory) +45
NHibernate.Engine.Query.QueryPlanCache.GetHQLQueryPlan(String queryString, Boolean shallow, IDictionary`2 enabledFilters) +210
NHibernate.Impl.SessionFactoryImpl.CheckNamedQueries() +449
NHibernate.Impl.SessionFactoryImpl..ctor(Configuration cfg, IMapping mapping, Settings settings, EventListeners listeners) +5245
NHibernate.Cfg.Configuration.BuildSessionFactory() +137
Spring.Data.NHibernate.LocalSessionFactoryObject.NewSessionFactory(Configuration config) +69
Spring.Data.NHibernate.LocalSessionFactoryObject.AfterPropertiesSet() +4753
Spring.Objects.Factory.Support.AbstractAutowireCapableObjectFactory.InvokeInitMethods(Object target, String name, IConfigurableObjectDefinition definition) +269
Spring.Objects.Factory.Support.AbstractAutowireCapableObjectFactory.ConfigureObject(String name, RootObjectDefinition definition, IObjectWrapper wrapper) +702
Spring.Objects.Factory.Support.WebObjectFactory.ConfigureObject(String name, RootObjectDefinition definition, IObjectWrapper wrapper) +108
Spring.Objects.Factory.Support.AbstractAutowireCapableObjectFactory.InstantiateObject(String name, RootObjectDefinition definition, Object[] arguments, Boolean allowEagerCaching, Boolean suppressConfigure) +956
原贴来自:
http://www.springframework.cn/blog/32.html
经过三天的折腾,终于将FastSpring.NET 所使用的Spring.NET和NHibernate升级到了最新的版本(Spring.Net 1.3.0和NHibernate 2.1.0GA)。并将FastSpring.NET的版本号升级到了4.1。新的FastSpring.NET Sample也发布了(http://www.springframework.cn/blog/30.html)。
PorectOffice 也通过了FastSpring.NET v4.1的兼容性测试。不久将发布基于FastSpring.NET v4.1新的演示版r的ProjectOffice v2.0。
这次,同时也更新了FastSpring.NET的免费License,到2009-10-10。最新的将会在此不定时的发布:http://bbs.springframework.cn/htm_data/14/0909/1326.html
(升级心得)主要是NHibernate2.1改进比较大:
(1)NHibernate对map文件的检测更严格,以前Map中的相关的写错的,NHibernate将提示错误,并停止启动
(2)NHibernate添加了相关的在HQL中不能使用的关键字,大家可以注意了。
谢谢大家的关注!