NHibernate SetTimeout на ICriteria

Я понял, что подход ниже очень прост.

Я объявил интерфейс для обратного вызова

public interface AsyncResponse {
    void processFinish(Object output);
}

Затем создал асинхронную задачу для ответа на все типы параллельных запросов

 public class MyAsyncTask extends AsyncTask<Object, Object, Object> {

    public AsyncResponse delegate = null;//Call back interface

    public MyAsyncTask(AsyncResponse asyncResponse) {
        delegate = asyncResponse;//Assigning call back interfacethrough constructor
    }

    @Override
    protected Object doInBackground(Object... params) {

      //My Background tasks are written here

      return {resutl Object}

    }

    @Override
    protected void onPostExecute(Object result) {
        delegate.processFinish(result);
    }

}

Затем вызывается асинхронная задача при нажатии кнопки в классе активности.

public class MainActivity extends Activity{

    @Override
    public void onCreate(Bundle savedInstanceState) {

    Button mbtnPress = (Button) findViewById(R.id.btnPress);

    mbtnPress.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {

                MyAsyncTask asyncTask =new MyAsyncTask(new AsyncResponse() {

                    @Override
                    public void processFinish(Object output) {
                        Log.d("Response From Asynchronous task:", (String) output);

                        mbtnPress.setText((String) output);
                   }
                });

                asyncTask.execute(new Object[] { "Your request to aynchronous task class is giving here.." });


            }
        });

    }



}

Спасибо

23
задан csharpwinphonexaml 9 September 2015 в 09:37
поделиться

2 ответа

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

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

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

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

27
ответ дан Rob 29 November 2019 в 02:22
поделиться

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

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

8
ответ дан David Crow 29 November 2019 в 02:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: