2008-08-29 3 views
22

Может ли кто-нибудь сказать мне, что использует метод SetTimeout(int) в интерфейсе ICriteria?
Это миллисекунды, секунды, минуты или другое?NHibernate SetTimeout on ICriteria

ответ

25

Немного ковыряться предположить, что это может быть секунд:

Если предположить, что ICriteria такое же, как интерфейс критериев в ядре гибернации, то JavaDoc для org.hibernate.Criteria дает подсказку - «Показать также» ссылку до java.sql.Statement.setQueryTimeout(). Последнее относится к его параметру тайм-аута в секундах.

Предполагая, что реализация NHibernate следует за подразумеваемым контрактом этого метода, тогда это должно быть хорошо. Однако, для спокойствия, я пошел и искал некоторые вещи NHibernate. Существуют различные ссылки на CommandTimeout; например, here, относящийся к NHibernate. Разумеется, documentation for CommandTimeout заявляет, что это секунды.

Я почти не писал выше, потому что я не знаю ответа прямо и не могу найти никакой конкретной документации, но поскольку в этом вопросе так мало, я полагал, что это не помешает представить эти выводы.

8

Я думаю, что это секунды. API-интерфейс NHibernate тесно связан с Hibernate Core для Java, где метод Criteria.setTimeout(int) использует секунды в качестве единиц (см. Также Statement.setQueryTimeout(int)).

Кроме того, посмотрев на источник NHibernate, выяснилось, что он использует это значение для установки таймаута для базового запроса ADO.NET, который использует секунды.

Смежные вопросы