NHibernate中的ICriteria如何设置超时时间?

24

请问ICriteria接口中的SetTimeout(int)方法使用的单位是什么?
是毫秒、秒、分钟还是其他单位?

2个回答

28
稍微调查一下,似乎可能是秒数:
假设 ICriteria 与 Hibernate 核心中的 Criteria 接口相同,则 org.hibernate.Criteria 的 JavaDoc 提供了一个提示 - “参见”链接到 java.sql.Statement.setQueryTimeout()。后者将其超时参数称为秒。
假设 NHibernate 实现遵循该方法的隐含合同,则应该没问题。但是,出于安心考虑,我去找了一些 NHibernate 特定的东西。有各种与 CommandTimeout 相关的引用;例如,here,与 NHibernate 相关。毫无疑问,CommandTimeout 的文档 表示它是以秒为单位的。
我几乎没有发布上述内容,因为我不知道答案,也找不到任何具体的文档 - 但是由于这个问题很少有相关资料,所以我认为呈现这些发现不会有害。

8
我认为这是秒。NHibernate API紧密地模仿了Java的Hibernate Core,其中Criteria.setTimeout(int)方法使用秒作为单位(另请参见Statement.setQueryTimeout(int))。此外,在查看一些NHibernate源代码后,似乎它使用该值来设置底层ADO.NET查询的超时时间,该查询使用秒作为单位。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接