Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / ibatis как использовать курсор / 5 сообщений из 5, страница 1 из 1
02.03.2018, 02:00
    #39609469
Maxifly
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ibatis как использовать курсор
Очень прошу, помогите тупому.

Задача такая - в БД есть таблица, в ней несколько записей. Их надо как-то обработать на стороне клиента.
То есть сами сущности не так уж и нужны их надо просто потрогать каждую и что-то там сделать.

Если записей немного, то можно их вытащить за один раз:
Код: java
1.
2.
3.
    public Collection<RoleHierarhy> getAllRoleHierarchy()  {
        return session.selectList("getAllRoleHierarchy");
    }


и так работает - сущности возвращаются.

А если много?
Наверняка же можно открыть курсор, пофетчить и закрыть?

Я пробовал вот так:

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
    public Collection<RoleHierarhy> getByCursor() {
        try (
        Cursor<RoleHierarhy> c =  session.selectCursor("getAllRoleHierarchy")){
          System.out.println("isOpen " + c.isOpen());
            for(RoleHierarhy rh:c) {
                System.out.println(rh.toString());
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
        return null;
    }


(вы не смотрите, что там return null - это просто попытки попробовать)
А isOpen равен false.

Данные в БД есть.
Что я делаю не так?
...
Рейтинг: 0 / 0
02.03.2018, 07:09
    #39609482
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ibatis как использовать курсор
MaxiflyТо есть сами сущности не так уж и нужнызначит сабж и ОРМ не нужен
...
Рейтинг: 0 / 0
02.03.2018, 08:19
    #39609490
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ibatis как использовать курсор
Maxifly,

Так а точно isOpen нужен? Может курсор слишком ленивый и ещё не начинал загрузку до первого элемента итерации?
...
Рейтинг: 0 / 0
02.03.2018, 08:23
    #39609491
Alexander A. Sak
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ibatis как использовать курсор
Исходники же есть. Там всего-то сотни две строк: https://github.com/mybatis/mybatis-3/blob/master/src/main/java/org/apache/ibatis/cursor/defaults/DefaultCursor.java

Похоже, надо просто делать итерацию for-ом каким-нибудь и не оглядываться.
...
Рейтинг: 0 / 0
02.03.2018, 08:29
    #39609493
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ibatis как использовать курсор
Alexander A. Sak,

Вот и я о том же

Код: java
1.
2.
3.
protected T fetchNextObjectFromDatabase() {
...
     status = CursorStatus.OPEN;
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / ibatis как использовать курсор / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]