使用statelesssession当IQUERY的可枚举NotSupportedException

2019-10-20 14:16发布

当试图使用一个命名查询可枚举法,用一个无状态会话,如图中的例子:

http://www.nhforge.org/doc/nh/en/#batch-statelesssession

我看到一个NotSupportedException异常。 堆栈跟踪是如下:

System.NotSupportedException: Specified method is not supported.
at NHibernate.Impl.StatelessSessionImpl.Enumerable(String query, QueryParameters parameters)
at NHibernate.Impl.QueryImpl.Enumerable()

这里是我的代码片段:

IStatelessSession statelessSession = sessionFactory.OpenStatelessSession();
var fileLines = statelessSession.GetNamedQuery("GetLinesByFileId")
.SetInt32("FileIdInput", fileId).Enumerable<FileLineEntity>();

命名查询,GetLinesByFileId在如下的定义HBM:

<query name="GetLinesByFileId" cacheable="false" read-only="true">
    <![CDATA[
        from FileLineEntity lineItem where lineItem.FileId=:FileIdInput 
      ]]>
  </query>

于我,也许在这里失踪有什么建议?

Answer 1:

该文档是错误的。 另外,通过观察它,你可以分辨出它是由Hibernate(Java)的复制。

使用List方法来代替。



文章来源: NotSupportedException on IQuery's Enumerable when using statelesssession