2016-04-17 3 views
0

Я новичок в Oracle ADF, и я застрял в понимании концепции работы queryMode.
может кто-нибудь, пожалуйста, объясните мне следующее
-> какие данные будут в кэше В.О., кэш ЕО, когда я делаю только vo.executeQuery()
-> то, что происходит, когда я использую setQueryMode() и делает VO. executeQuery() с различными режимами, такими как QUERY_MODE_SCAN_VIEW_ROWS, QUERY_MODE_SCAN_ENTITY_ROWS, QUERY_MODE_SCAN_DATABASE_TABLES | QUERY_MODE_SCAN_ENTITY_ROWS в таблице ниже.
-> Когда мы применяем ViewCriteria с указанными выше режимами, как это работает.Как точно работает setQueryMode VO?

позволяет принять следующую таблицу под названием InfoTable

Id | StartDate | EndDate | Страна | Статус
56 | 01-Апрель-16 | 31-Декабрь-16 | США |
57 | 01-APR- 16 | 31-DEC-16 | IND |
58 | 14-апрель-16 | 31-DEC-16 | UK | N

Примечание: Здесь PrimarKey (идентификатор, StartDate, EndDate)

Может мы визуализируем, какие данные в EO, VO-кеше, как таблицы базы данных?
Спасибо заранее.

ответ

1

queryMode определяет, как работает с ВО данных:

1) QUERY_MODE_SCAN_DATABASE_TABLES: всегда получает данные из базы данных (режим по умолчанию);

2) QUERY_MODE_SCAN_VIEW_ROWS: берет данные из существующих строк, не запрашивая их из базы данных (в памяти);

3) QUERY_MODE_SCAN_ENTITY_ROWS: использует кэш сущностей (только для лица на основе VO)

Сортировка: При вызове метода сортировки для QUERY_MODE_SCAN_DATABASE_TABLES, то исходный SQL-запрос меняющийся двигателем AdfBc к:

select * from ([original select defined in your ViewObject]) order by field1; 

В случае QUERY_MODE_SCAN_VIEW_ROWS сортировки использует Comparable интерфейс в памяти;

Фильтрация: Процесс фильтрации использует ViewCriteria, который также имеет queryMode: CRITERIA_MODE_QUERY: использует базу данных для извлечения данных фильтра. Как и в примере сортировки AdfBc также динамически окружает исходный запрос с внешним выбрать с, где положение и предикаты регулируется ViewCriteria:

select * 
    from ([original select defined in your ViewObject]) 
    where field1=:field1 and field2 between :field2_start and :field2_end; 

CRITERIA_MODE_CACHE: все ограничения данных появляется в памяти.

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