2016-04-17 12 views
0

Ich bin neu in Oracle ADF und ich bin fest im Verständnis Konzept, wie QueryMode funktioniert.
kann jemand bitte erklären Sie mir folgende
-> welche Daten in VO-Cache sein, Cache-EO, wenn ich vo.executeQuery tun gerade()
-> was passiert, wenn ich benutze setQueryMode() und tut vo. executeQuery() mit verschiedenen Modi wie QUERY_MODE_SCAN_VIEW_ROWS, QUERY_MODE_SCAN_ENTITY_ROWS, QUERY_MODE_SCAN_DATABASE_TABLES | QUERY_MODE_SCAN_ENTITY_ROWS in der folgenden Tabelle.
-> Wenn wir ViewCriteria mit den oben genannten Modi anwenden, wie es sich verhält.Wie genau setQueryMode von VO funktioniert?

lässt folgende Tabelle InfoTable

Id genannt nehmen | Startdatum | EndDate | Land | Der Status
56 | 01-April-16 | 31-DEC-16 | US | A
57 | 01-APR- 16 | 31-DEC-16 | IND | A
58 | 14-Apr-16 | 31-DEC-16 | UK | N

Hinweis: Hier PrimarKey (id, Startdate, EndDate)

Can wir visualisieren, welche Daten in EO, VO Cache wie Datenbanktabellen?
Vielen Dank im Voraus.

Antwort

1

queryMode bestimmt, wie VOs mit Daten arbeitet:

1) QUERY_MODE_SCAN_DATABASE_TABLES: immer erhält Daten aus der Datenbank (Standardmodus);

2) QUERY_MODE_SCAN_VIEW_ROWS: Nimmt Daten aus vorhandenen Zeilen, ohne sie aus der Datenbank zu requirieren (im Speicher);

3) QUERY_MODE_SCAN_ENTITY_ROWS: verwendet Cache-Einheit (nur für Entity-basierte VOs)

Sortierung: Wenn Sie den Aufruf Methode für QUERY_MODE_SCAN_DATABASE_TABLES Sortierung, dann Ihre ursprüngliche SQL-Abfrage durch AdfBc Motor Wechsel zu:

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

bei QUERY_MODE_SCAN_VIEW_ROWS Sortieranlage verwendet Vergleichbare Schnittstelle im Speicher;

Filtering: Filterprozess verwendet ViewCriteria, die auch queryMode hat: CRITERIA_MODE_QUERY: Filterdaten verwendet Datenbank abzurufen. Wie im Beispiel von AdfBc Sortierung mit dynamisch umgibt auch Ihre ursprüngliche Abfrage mit externem wählen where-Klausel und Prädikate von ViewCriteria eingestellt:

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

CRITERIA_MODE_CACHE: alle Daten Einschränkungen erscheinen im Speicher.