NHibernate SetTimeout关于标准

时间:2020-03-05 18:44:50  来源:igfitidea点击:

有人可以告诉我ICriteria接口中SetTimeout(int)方法使用的单位吗?
是毫秒,秒,分钟还是其他?

解决方案

回答

我想是几秒钟。 NHibernate API与Jav​​a的Hibernate Core紧密相似,其中Criteria.setTimeout(int)方法使用秒为单位(另请参见Statement.setQueryTimeout(int))。

同样,在查看了NHibernate某些源之后,似乎它正在使用该值来设置基础ADO.NET查询的超时(使用秒)。

回答

稍微戳一下,可能需要几秒钟:

假设ICriteria与Hibernate核心中的Criteria接口相同,则org.hibernate.Criteria的JavaDoc会提供一个提示,即指向java.sql.Statement.setQueryTimeout()的"另请参见"链接。后者将其超时参数称为秒。

假设NHibernate实现遵循该方法的隐含约定,则应该可以。但是,为了省心,我去找了一些NHibernate特定的东西。有许多对CommandTimeout的引用。例如,这里与NHibernate有关。果然,CommandTimeout的文档指出这是秒。

我几乎没有发布以上内容,因为我不完全知道答案,也找不到任何具体的文档,但是由于问题很少,我认为提出这些发现不会有任何伤害。