9
9
import java .util .ArrayList ;
10
10
import java .util .Collections ;
11
11
import java .util .List ;
12
+ import java .util .Map ;
13
+
14
+ import jakarta .persistence .criteria .CriteriaBuilder ;
12
15
import jakarta .persistence .criteria .CriteriaQuery ;
13
16
import jakarta .persistence .criteria .Root ;
14
17
24
27
import org .hibernate .query .criteria .HibernateCriteriaBuilder ;
25
28
import org .hibernate .query .criteria .JpaExpression ;
26
29
27
- import org .hibernate .testing .TestForIssue ;
30
+ import org .hibernate .testing .orm . junit . Jira ;
28
31
29
32
import org .junit .jupiter .api .Test ;
30
33
34
+ import static org .assertj .core .api .Assertions .assertThat ;
31
35
import static org .hibernate .testing .transaction .TransactionUtil .doInJPA ;
32
36
33
37
/**
@@ -72,15 +76,15 @@ public void testCollectionIsEmptyCriteria() {
72
76
}
73
77
74
78
@ Test
75
- @ TestForIssue ( jiraKey = " HHH-11225" )
79
+ @ Jira ( "https://hibernate.atlassian.net/browse/ HHH-11225" )
76
80
public void testElementMapIsEmptyHql () {
77
81
doInJPA ( this ::entityManagerFactory , entityManager -> {
78
82
entityManager .createQuery ( "select m from MapEntity m where m.localized is empty" ).getResultList ();
79
83
});
80
84
}
81
85
82
86
@ Test
83
- @ TestForIssue ( jiraKey = " HHH-11225" )
87
+ @ Jira ( "https://hibernate.atlassian.net/browse/ HHH-11225" )
84
88
public void testElementMapIsEmptyCriteria () {
85
89
doInJPA ( this ::entityManagerFactory , entityManager -> {
86
90
final HibernateCriteriaBuilder cb = (HibernateCriteriaBuilder ) entityManager .getCriteriaBuilder ();
@@ -96,15 +100,15 @@ public void testElementMapIsEmptyCriteria() {
96
100
}
97
101
98
102
@ Test
99
- @ TestForIssue ( jiraKey = " HHH-11225" )
103
+ @ Jira ( "https://hibernate.atlassian.net/browse/ HHH-11225" )
100
104
public void testEntityMapIsEmptyHql () {
101
105
doInJPA ( this ::entityManagerFactory , entityManager -> {
102
106
entityManager .createQuery ( "select a from Article a where a.translations is empty" ).getResultList ();
103
107
});
104
108
}
105
109
106
110
@ Test
107
- @ TestForIssue ( jiraKey = " HHH-11225" )
111
+ @ Jira ( "https://hibernate.atlassian.net/browse/ HHH-11225" )
108
112
public void testEntityMapIsEmptyCriteria () {
109
113
doInJPA ( this ::entityManagerFactory , entityManager -> {
110
114
final HibernateCriteriaBuilder cb = (HibernateCriteriaBuilder ) entityManager .getCriteriaBuilder ();
@@ -146,15 +150,15 @@ public void testCollectionSizeCriteria() {
146
150
}
147
151
148
152
@ Test
149
- @ TestForIssue ( jiraKey = " HHH-11225" )
153
+ @ Jira ( "https://hibernate.atlassian.net/browse/ HHH-11225" )
150
154
public void testElementMapSizeHql () {
151
155
doInJPA ( this ::entityManagerFactory , entityManager -> {
152
156
entityManager .createQuery ( "select m from MapEntity m where size( m.localized ) > 1" ).getResultList ();
153
157
});
154
158
}
155
159
156
160
@ Test
157
- @ TestForIssue ( jiraKey = " HHH-11225" )
161
+ @ Jira ( "https://hibernate.atlassian.net/browse/ HHH-11225" )
158
162
public void testElementMapSizeCriteria () {
159
163
doInJPA ( this ::entityManagerFactory , entityManager -> {
160
164
final HibernateCriteriaBuilder cb = (HibernateCriteriaBuilder ) entityManager .getCriteriaBuilder ();
@@ -170,15 +174,15 @@ public void testElementMapSizeCriteria() {
170
174
}
171
175
172
176
@ Test
173
- @ TestForIssue ( jiraKey = " HHH-11225" )
177
+ @ Jira ( "https://hibernate.atlassian.net/browse/ HHH-11225" )
174
178
public void testEntityMapSizeHql () {
175
179
doInJPA ( this ::entityManagerFactory , entityManager -> {
176
180
entityManager .createQuery ( "select a from Article a where size(a.translations) > 1" ).getResultList ();
177
181
});
178
182
}
179
183
180
184
@ Test
181
- @ TestForIssue ( jiraKey = " HHH-11225" )
185
+ @ Jira ( "https://hibernate.atlassian.net/browse/ HHH-11225" )
182
186
public void testEntityMapSizeCriteria () {
183
187
doInJPA ( this ::entityManagerFactory , entityManager -> {
184
188
final HibernateCriteriaBuilder cb = (HibernateCriteriaBuilder ) entityManager .getCriteriaBuilder ();
@@ -193,4 +197,31 @@ public void testEntityMapSizeCriteria() {
193
197
});
194
198
}
195
199
200
+ @ Test
201
+ @ Jira ("https://hibernate.atlassian.net/browse/HHH-19126" )
202
+ public void testPluralMapPathJavaType () {
203
+ doInJPA ( this ::entityManagerFactory , entityManager -> {
204
+ final CriteriaBuilder cb = entityManager .getCriteriaBuilder ();
205
+
206
+ final CriteriaQuery <Article > criteria = cb .createQuery ( Article .class );
207
+ final Root <Article > root = criteria .from ( Article .class );
208
+
209
+ assertThat ( root .get ( Article_ .translations ).getJavaType () ).isEqualTo ( Map .class );
210
+ assertThat ( root .get ( "translations" ).getJavaType () ).isEqualTo ( Map .class );
211
+ } );
212
+ }
213
+
214
+ @ Test
215
+ @ Jira ("https://hibernate.atlassian.net/browse/HHH-19126" )
216
+ public void testPluralListPathJavaType () {
217
+ doInJPA ( this ::entityManagerFactory , entityManager -> {
218
+ final CriteriaBuilder cb = entityManager .getCriteriaBuilder ();
219
+
220
+ final CriteriaQuery <Address > criteria = cb .createQuery ( Address .class );
221
+ final Root <Address > root = criteria .from ( Address .class );
222
+
223
+ assertThat ( root .get ( Address_ .phones ).getJavaType () ).isEqualTo ( List .class );
224
+ assertThat ( root .get ( "phones" ).getJavaType () ).isEqualTo ( List .class );
225
+ } );
226
+ }
196
227
}
0 commit comments