77import java .util .ArrayList ;
88import java .util .Collections ;
99import java .util .List ;
10+ import java .util .Map ;
11+
12+ import jakarta .persistence .criteria .CriteriaBuilder ;
1013import jakarta .persistence .criteria .CriteriaQuery ;
1114import jakarta .persistence .criteria .Root ;
1215
2225import org .hibernate .query .criteria .HibernateCriteriaBuilder ;
2326import org .hibernate .query .criteria .JpaExpression ;
2427
25- import org .hibernate .testing .orm .junit .JiraKey ;
28+ import org .hibernate .testing .orm .junit .Jira ;
2629
2730import org .junit .jupiter .api .Test ;
2831
32+ import static org .assertj .core .api .Assertions .assertThat ;
2933import static org .hibernate .testing .transaction .TransactionUtil .doInJPA ;
3034
3135/**
@@ -70,15 +74,15 @@ public void testCollectionIsEmptyCriteria() {
7074 }
7175
7276 @ Test
73- @ JiraKey ( value = " HHH-11225" )
77+ @ Jira ( "https://hibernate.atlassian.net/browse/ HHH-11225" )
7478 public void testElementMapIsEmptyHql () {
7579 doInJPA ( this ::entityManagerFactory , entityManager -> {
7680 entityManager .createQuery ( "select m from MapEntity m where m.localized is empty" ).getResultList ();
7781 });
7882 }
7983
8084 @ Test
81- @ JiraKey ( value = " HHH-11225" )
85+ @ Jira ( "https://hibernate.atlassian.net/browse/ HHH-11225" )
8286 public void testElementMapIsEmptyCriteria () {
8387 doInJPA ( this ::entityManagerFactory , entityManager -> {
8488 final HibernateCriteriaBuilder cb = (HibernateCriteriaBuilder ) entityManager .getCriteriaBuilder ();
@@ -94,15 +98,15 @@ public void testElementMapIsEmptyCriteria() {
9498 }
9599
96100 @ Test
97- @ JiraKey ( value = " HHH-11225" )
101+ @ Jira ( "https://hibernate.atlassian.net/browse/ HHH-11225" )
98102 public void testEntityMapIsEmptyHql () {
99103 doInJPA ( this ::entityManagerFactory , entityManager -> {
100104 entityManager .createQuery ( "select a from Article a where a.translations is empty" ).getResultList ();
101105 });
102106 }
103107
104108 @ Test
105- @ JiraKey ( value = " HHH-11225" )
109+ @ Jira ( "https://hibernate.atlassian.net/browse/ HHH-11225" )
106110 public void testEntityMapIsEmptyCriteria () {
107111 doInJPA ( this ::entityManagerFactory , entityManager -> {
108112 final HibernateCriteriaBuilder cb = (HibernateCriteriaBuilder ) entityManager .getCriteriaBuilder ();
@@ -144,15 +148,15 @@ public void testCollectionSizeCriteria() {
144148 }
145149
146150 @ Test
147- @ JiraKey ( value = " HHH-11225" )
151+ @ Jira ( "https://hibernate.atlassian.net/browse/ HHH-11225" )
148152 public void testElementMapSizeHql () {
149153 doInJPA ( this ::entityManagerFactory , entityManager -> {
150154 entityManager .createQuery ( "select m from MapEntity m where size( m.localized ) > 1" ).getResultList ();
151155 });
152156 }
153157
154158 @ Test
155- @ JiraKey ( value = " HHH-11225" )
159+ @ Jira ( "https://hibernate.atlassian.net/browse/ HHH-11225" )
156160 public void testElementMapSizeCriteria () {
157161 doInJPA ( this ::entityManagerFactory , entityManager -> {
158162 final HibernateCriteriaBuilder cb = (HibernateCriteriaBuilder ) entityManager .getCriteriaBuilder ();
@@ -168,15 +172,15 @@ public void testElementMapSizeCriteria() {
168172 }
169173
170174 @ Test
171- @ JiraKey ( value = " HHH-11225" )
175+ @ Jira ( "https://hibernate.atlassian.net/browse/ HHH-11225" )
172176 public void testEntityMapSizeHql () {
173177 doInJPA ( this ::entityManagerFactory , entityManager -> {
174178 entityManager .createQuery ( "select a from Article a where size(a.translations) > 1" ).getResultList ();
175179 });
176180 }
177181
178182 @ Test
179- @ JiraKey ( value = " HHH-11225" )
183+ @ Jira ( "https://hibernate.atlassian.net/browse/ HHH-11225" )
180184 public void testEntityMapSizeCriteria () {
181185 doInJPA ( this ::entityManagerFactory , entityManager -> {
182186 final HibernateCriteriaBuilder cb = (HibernateCriteriaBuilder ) entityManager .getCriteriaBuilder ();
@@ -191,4 +195,31 @@ public void testEntityMapSizeCriteria() {
191195 });
192196 }
193197
198+ @ Test
199+ @ Jira ("https://hibernate.atlassian.net/browse/HHH-19126" )
200+ public void testPluralMapPathJavaType () {
201+ doInJPA ( this ::entityManagerFactory , entityManager -> {
202+ final CriteriaBuilder cb = entityManager .getCriteriaBuilder ();
203+
204+ final CriteriaQuery <Article > criteria = cb .createQuery ( Article .class );
205+ final Root <Article > root = criteria .from ( Article .class );
206+
207+ assertThat ( root .get ( Article_ .translations ).getJavaType () ).isEqualTo ( Map .class );
208+ assertThat ( root .get ( "translations" ).getJavaType () ).isEqualTo ( Map .class );
209+ } );
210+ }
211+
212+ @ Test
213+ @ Jira ("https://hibernate.atlassian.net/browse/HHH-19126" )
214+ public void testPluralListPathJavaType () {
215+ doInJPA ( this ::entityManagerFactory , entityManager -> {
216+ final CriteriaBuilder cb = entityManager .getCriteriaBuilder ();
217+
218+ final CriteriaQuery <Address > criteria = cb .createQuery ( Address .class );
219+ final Root <Address > root = criteria .from ( Address .class );
220+
221+ assertThat ( root .get ( Address_ .phones ).getJavaType () ).isEqualTo ( List .class );
222+ assertThat ( root .get ( "phones" ).getJavaType () ).isEqualTo ( List .class );
223+ } );
224+ }
194225}
0 commit comments