Naposledy změněno Martin Mahr 2024/10/21 22:21

Od verze 1.1
změnil(a) Jan Šimeček
k 2024/07/16 13:07
Změnit komentář: Žádné komentáře k této verzi
Na verzi 3.1
změnil(a) Martin Mahr
k 2024/10/21 22:21
Změnit komentář: Žádné komentáře k této verzi

Summary

Details

Page properties
Autor dokumentu
... ... @@ -1,1 +1,1 @@
1 -XWiki.simecek
1 +XWiki.mahr
Výchozí jazyk
... ... @@ -1,1 +1,1 @@
1 -en
1 +cs
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