Změny dokumentu TQL - Tritius Query Language
Naposledy změněno Martin Mahr 2024/10/21 22:21
Summary
-
Page properties (1 modified, 0 added, 0 removed)
Details
- Page properties
-
- Content
-
... ... @@ -3,30 +3,39 @@ 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)>> 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]])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]]) 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>> 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]])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]]) 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 +** 18 18 *** příklad: 19 -*** 22 +*** 20 20 21 21 {{{workTypeName = 'KN'}}} 25 + 26 +* 22 22 ** u názvů metod (s parametry) se závorky musí používat 23 -*** 28 +*** 24 24 25 25 {{{boolean workHasSubfieldValueInSubfieldIds(String value, Integer... ids);}}} 31 + 32 +* 33 +** 26 26 *** příklad: 27 -*** 35 +*** 28 28 29 29 {{{workHasSubfieldValueInSubfieldIds('drt', -286200, -127000)}}} 38 + 30 30 * vlastní **výrazy jazyka** (IN, LIKE, IS, NOT, NULL, AND, OR, ...) jsou **case-insensitive** (nezáleží na velikosti písmen) 31 31 32 32 = Příklady podmínek = ... ... @@ -35,7 +35,7 @@ 35 35 36 36 Vždy se používá true/false 37 37 38 -| 47 +| 39 39 40 40 {{{itemActive = true 41 41 itemActive = false}}} ... ... @@ -49,7 +49,7 @@ 49 49 * lze použít operátor NOT jako negaci výrazu 50 50 * pro následující typ dokumentu '**kniha**' výrazy vrací TRUE 51 51 52 -| 61 +| 53 53 54 54 {{{workTypeName CONTAINS 'kniha' 55 55 workTypeName STARTS 'kn' ... ... @@ -66,7 +66,7 @@ 66 66 * rozšiřuje operátor LIKE o výraz IN, aby byl zkrácen zápis dlouhých podmínek 67 67 * pro následující typ dokumentu '**kniha**' výrazy vrací TRUE 68 68 69 -| 78 +| 70 70 71 71 {{{workTypeName CONTAINS IN ('kniha', 'PE') 72 72 workTypeName CONTAINS IN ('ni', 'PE') ... ... @@ -84,7 +84,7 @@ 84 84 * lze použít pro řetězcové i číselné hodnoty 85 85 * lze použít operátor NOT jako negaci výrazu 86 86 87 -| 96 +| 88 88 89 89 {{{workTypeId IN (10, 11, 12) 90 90 workTypeId NOT IN (10, 11, 12) ... ... @@ -98,7 +98,7 @@ 98 98 * pro vyhodnocení výrazu se používá <= a >= 99 99 ** pro ID typu dokumentu: 10, 11, 12 vrací TRUE 100 100 101 -| 110 +| 102 102 103 103 {{{workTypeId BETWEEN (10, 12) 104 104 currentDate BETWEEN ('18.08.2019', '20.08.2019')}}} ... ... @@ -109,7 +109,7 @@ 109 109 * 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) 110 110 * lze použít operátor NOT jako negaci výrazu 111 111 112 -| 121 +| 113 113 114 114 {{{itemLocationName = 'Moje lokace' 115 115 itemLocationName IS NULL ... ... @@ -134,7 +134,7 @@ 134 134 * funkce na pravé straně výrazu 135 135 ** nowAddMonths() 136 136 137 -| 146 +| 138 138 139 139 {{{workTypeId = 1 140 140 workTypeId > 1 ... ... @@ -153,7 +153,7 @@ 153 153 154 154 * výsledkem volání těchto funkcí je vždy TRUE nebo FALSE 155 155 156 -| 165 +| 157 157 158 158 {{{workHasSubfieldValueInSubfieldIds('drt', -286200, -127000) 159 159 workHasSubfieldValueInSubfieldIds('drt', -286200, -127000) AND workTypeId = -1