Changes for page TQL - Tritius Query Language
Last modified by Martin Mahr on 2024/10/21 22:21
From version 3.1
edited by Martin Mahr
on 2024/10/21 22:21
on 2024/10/21 22:21
Change comment:
There is no comment for this version
To version 1.1
edited by Jan Šimeček
on 2024/07/16 13:07
on 2024/07/16 13:07
Change comment:
There is no comment for this version
Summary
-
Page properties (3 modified, 0 added, 0 removed)
Details
- Page properties
-
- Author
-
... ... @@ -1,1 +1,1 @@ 1 -XWiki.m ahr1 +XWiki.simecek - Default language
-
... ... @@ -1,1 +1,1 @@ 1 - cs1 +en - Content
-
... ... @@ -3,39 +3,30 @@ 3 3 Jedná se o vlastní jazyk Tritia, který umožňuje transformace na jazyk **Java **a **SQL**. 4 4 5 5 * lze použít následující metody 6 -** viz [[TQL - metody (funkce)>> doc:.TQL-metody-funkce.WebHome]] ([[definice rozhraní>>url:https://gitlab.tritius.cz/tr/tritius/-/blob/master/project/tritius-query-language/src/main/java/cz/tritius/tql/EvaluatingMethods.java]])6 +** viz [[TQL - metody (funkce)>>url:https://confluence.tritius.cz/pages/viewpage.action?pageId=184551266]] ([[definice rozhraní>>url:https://gitlab.tritius.cz/tr/tritius/-/blob/master/project/tritius-query-language/src/main/java/cz/tritius/tql/EvaluatingMethods.java]]) 7 7 ** součástí definice je návratový typ, který indikuje, jak je možné provádět porovnání 8 8 * ne všechny podmínky lze transformovat na Java nebo SQL 9 9 ** valná většina (přes 90%) podmínek lze použít v obou jazycích 10 -** na SQL lze transformovat všechny podmínky, které nevrací NULL - viz. [[TQL - atributy>> doc:.TQL-atributy.WebHome]] ([[zdrojový kód>>url:https://gitlab.tritius.cz/tr/tritius/-/blob/master/project/tritius-query-language/src/main/java/cz/tritius/tql/SqlBindings.java]])10 +** na SQL lze transformovat všechny podmínky, které nevrací NULL - viz. [[TQL - atributy>>url:https://confluence.tritius.cz/display/TP/TQL+-+atributy]] ([[zdrojový kód>>url:https://gitlab.tritius.cz/tr/tritius/-/blob/master/project/tritius-query-language/src/main/java/cz/tritius/tql/SqlBindings.java]]) 11 11 * při ukládání objektu se provádí validace, zda je možné podmínku v tomto případě použít 12 12 * syntaxe jazyka je nejvíce podobná SQL, ale je trochu polidštěna a doplněna o operátory zkracující zápis 13 13 * **názvy atributů** a funkcí jsou vždy **case-sensitive** (záleží na velikosti písmen) 14 14 ** u názvů atributů bez parametrů se nepoužívají závorky 15 -*** 15 +*** 16 16 17 17 {{{String workTypeName()}}} 18 - 19 -* 20 -** 21 21 *** příklad: 22 -*** 19 +*** 23 23 24 24 {{{workTypeName = 'KN'}}} 25 - 26 -* 27 27 ** u názvů metod (s parametry) se závorky musí používat 28 -*** 23 +*** 29 29 30 30 {{{boolean workHasSubfieldValueInSubfieldIds(String value, Integer... ids);}}} 31 - 32 -* 33 -** 34 34 *** příklad: 35 -*** 27 +*** 36 36 37 37 {{{workHasSubfieldValueInSubfieldIds('drt', -286200, -127000)}}} 38 - 39 39 * vlastní **výrazy jazyka** (IN, LIKE, IS, NOT, NULL, AND, OR, ...) jsou **case-insensitive** (nezáleží na velikosti písmen) 40 40 41 41 = Příklady podmínek = ... ... @@ -44,7 +44,7 @@ 44 44 45 45 Vždy se používá true/false 46 46 47 -| 38 +| 48 48 49 49 {{{itemActive = true 50 50 itemActive = false}}} ... ... @@ -58,7 +58,7 @@ 58 58 * lze použít operátor NOT jako negaci výrazu 59 59 * pro následující typ dokumentu '**kniha**' výrazy vrací TRUE 60 60 61 -| 52 +| 62 62 63 63 {{{workTypeName CONTAINS 'kniha' 64 64 workTypeName STARTS 'kn' ... ... @@ -75,7 +75,7 @@ 75 75 * rozšiřuje operátor LIKE o výraz IN, aby byl zkrácen zápis dlouhých podmínek 76 76 * pro následující typ dokumentu '**kniha**' výrazy vrací TRUE 77 77 78 -| 69 +| 79 79 80 80 {{{workTypeName CONTAINS IN ('kniha', 'PE') 81 81 workTypeName CONTAINS IN ('ni', 'PE') ... ... @@ -93,7 +93,7 @@ 93 93 * lze použít pro řetězcové i číselné hodnoty 94 94 * lze použít operátor NOT jako negaci výrazu 95 95 96 -| 87 +| 97 97 98 98 {{{workTypeId IN (10, 11, 12) 99 99 workTypeId NOT IN (10, 11, 12) ... ... @@ -107,7 +107,7 @@ 107 107 * pro vyhodnocení výrazu se používá <= a >= 108 108 ** pro ID typu dokumentu: 10, 11, 12 vrací TRUE 109 109 110 -| 101 +| 111 111 112 112 {{{workTypeId BETWEEN (10, 12) 113 113 currentDate BETWEEN ('18.08.2019', '20.08.2019')}}} ... ... @@ -118,7 +118,7 @@ 118 118 * i když je jazyk bezpečný na NULL hodnoty, občas je třeba provést kontrolu na NULL hodnotu (zejména při použití operátoru OR) 119 119 * lze použít operátor NOT jako negaci výrazu 120 120 121 -| 112 +| 122 122 123 123 {{{itemLocationName = 'Moje lokace' 124 124 itemLocationName IS NULL ... ... @@ -143,7 +143,7 @@ 143 143 * funkce na pravé straně výrazu 144 144 ** nowAddMonths() 145 145 146 -| 137 +| 147 147 148 148 {{{workTypeId = 1 149 149 workTypeId > 1 ... ... @@ -162,7 +162,7 @@ 162 162 163 163 * výsledkem volání těchto funkcí je vždy TRUE nebo FALSE 164 164 165 -| 156 +| 166 166 167 167 {{{workHasSubfieldValueInSubfieldIds('drt', -286200, -127000) 168 168 workHasSubfieldValueInSubfieldIds('drt', -286200, -127000) AND workTypeId = -1