2008-08-29 28 views
22

Ai đó có thể cho tôi biết các đơn vị phương pháp SetTimeout(int) trong giao diện ICriteria sử dụng?
Có phải là mili giây, giây, phút hay cách khác không?NHibernate SetTimeout trên ICriteria

Trả lời

25

Một chút poking xung quanh cho thấy rằng nó có thể là giây:

Giả sử rằng ICriteria cũng giống như giao diện Tiêu chuẩn trong Hibernate lõi, sau đó javadoc cho org.hibernate.Criteria cung cấp một gợi ý - những "xem thêm" liên kết đến java.sql.Statement.setQueryTimeout(). Cái sau đề cập đến tham số thời gian chờ của nó là giây.

Giả sử rằng việc triển khai NHibernate tuân theo hợp đồng ngụ ý của phương thức đó, thì điều đó sẽ ổn. Tuy nhiên, vì lợi ích của tâm trí, tôi đã đi và tìm một số công cụ cụ thể NHibernate. Có nhiều tham chiếu đến CommandTimeout; ví dụ: here, liên quan đến NHibernate. Chắc chắn, các documentation for CommandTimeout nói rằng đó là giây.

Tôi gần như không đăng ở trên, vì tôi không biết câu trả lời hoàn toàn và không thể tìm thấy bất kỳ tài liệu cụ thể nào - nhưng vì có quá ít vấn đề nên tôi không thể trình bày những phát hiện này.

8

Tôi nghĩ rằng đó là giây. API NHibernate phản chiếu chặt chẽ lõi Hibernate cho Java, trong đó phương thức Criteria.setTimeout(int) sử dụng giây làm đơn vị (xem thêm Statement.setQueryTimeout(int)).

Ngoài ra, sau khi xem xét một số nguồn NHibernate, có vẻ như nó đang sử dụng giá trị đó để đặt thời gian chờ cho truy vấn ADO.NET cơ bản, sử dụng giây.