带动态组件的NHibernate.QueryException

时间:2009-12-15 23:39:28

标签: nhibernate

好吧,这将是一个长镜头,因为它是一个大系统(我还没有声称完全理解),问题可能不是NHibernate本身,我甚至无法复制它,但是......

我有一个带有< dynamic-component>的课程部分,当我对它运行查询(通过我的ASP.NET MVC应用程序)时,它失败了,但有时只是。 (是的,最糟糕的那种!)

我看到的例外是:

NHibernate.QueryException: could not resolve property:
Attributes.MyAttributeName of: MyClassName
   at NHibernate.Persister.Entity.AbstractPropertyMapping.GetColumns(String propertyName)
   at NHibernate.Persister.Entity.AbstractPropertyMapping.ToColumns(String alias, String propertyName)
   at NHibernate.Persister.Entity.BasicEntityPropertyMapping.ToColumns(String alias, String propertyName)
   at NHibernate.Persister.Entity.AbstractEntityPersister.ToColumns(String alias, String propertyName)
   at NHibernate.Loader.Criteria.CriteriaQueryTranslator.GetColumns(String propertyName, ICriteria subcriteria)
   at NHibernate.Loader.Criteria.CriteriaQueryTranslator.GetColumnsUsingProjection(ICriteria subcriteria, String propertyName)
   at NHibernate.Criterion.CriterionUtil.GetColumnNamesUsingPropertyName(ICriteriaQuery criteriaQuery, ICriteria criteria, String propertyName, Object value, ICriterion critertion)
   at NHibernate.Criterion.CriterionUtil.GetColumnNamesForSimpleExpression(String propertyName, IProjection projection, ICriteriaQuery criteriaQuery, ICriteria criteria, IDictionary`2 enabledFilters, ICriterion criterion, Object value)
   at NHibernate.Criterion.SimpleExpression.ToSqlString(ICriteria criteria, ICriteriaQuery criteriaQuery, IDictionary`2 enabledFilters)
   at NHibernate.Loader.Criteria.CriteriaQueryTranslator.GetWhereCondition(IDictionary`2 enabledFilters)
   at NHibernate.Loader.Criteria.CriteriaJoinWalker..ctor(IOuterJoinLoadable persister, CriteriaQueryTranslator translator, ISessionFactoryImplementor factory, CriteriaImpl criteria, String rootEntityName, IDictionary`2 enabledFilters)
   at NHibernate.Loader.Criteria.CriteriaLoader..ctor(IOuterJoinLoadable persister, ISessionFactoryImplementor factory, CriteriaImpl rootCriteria, String rootEntityName, IDictionary`2 enabledFilters)
   at NHibernate.Impl.SessionImpl.List(CriteriaImpl criteria, IList results)
   at NHibernate.Impl.CriteriaImpl.List(IList results)
   at NHibernate.Impl.CriteriaImpl.UniqueResult[T]()
...my code below here...

任何人都可以准确解释这个QueryException的含义,也就是说,我可以知道它认为究竟出了什么问题?

谢谢!

2 个答案:

答案 0 :(得分:0)

  

NHibernate.QueryException:不能   解决财产:   Attributes.MyAttributeName:   MyClassName

我认为,“MyAttributeName”属性不会与字段映射。

您能提供更多信息吗?

答案 1 :(得分:0)

事实证明我的问题是就在NHibernate的之外,这只是实际问题的最直接症状。

(我会描述真正的问题,但细节对其他人来说并不是那么有趣或有帮助。除了说:缓存非常有用,每个人,除非你犯了错误并且他们不喜欢返回他们应该做的事情!)

我试图关闭这个问题,但我只是得到了“关闭/重新打开时出现问题”弹出窗口,所以只是假装它已经关闭。