99import  java .util .ArrayList ;
1010import  java .util .Collections ;
1111import  java .util .List ;
12+ import  java .util .Map ;
13+ 
14+ import  jakarta .persistence .criteria .CriteriaBuilder ;
1215import  jakarta .persistence .criteria .CriteriaQuery ;
1316import  jakarta .persistence .criteria .Root ;
1417
2427import  org .hibernate .query .criteria .HibernateCriteriaBuilder ;
2528import  org .hibernate .query .criteria .JpaExpression ;
2629
27- import  org .hibernate .testing .TestForIssue ;
30+ import  org .hibernate .testing .orm . junit . Jira ;
2831
2932import  org .junit .jupiter .api .Test ;
3033
34+ import  static  org .assertj .core .api .Assertions .assertThat ;
3135import  static  org .hibernate .testing .transaction .TransactionUtil .doInJPA ;
3236
3337/** 
@@ -72,15 +76,15 @@ public void testCollectionIsEmptyCriteria() {
7276	}
7377
7478	@ Test 
75- 	@ TestForIssue (  jiraKey  =  " HHH-11225"  )
79+ 	@ Jira ( "https://hibernate.atlassian.net/browse/ HHH-11225" )
7680	public  void  testElementMapIsEmptyHql () {
7781		doInJPA ( this ::entityManagerFactory , entityManager  -> {
7882			entityManager .createQuery ( "select m from MapEntity m where m.localized is empty"  ).getResultList ();
7983		});
8084	}
8185
8286	@ Test 
83- 	@ TestForIssue (  jiraKey  =  " HHH-11225"  )
87+ 	@ Jira ( "https://hibernate.atlassian.net/browse/ HHH-11225" )
8488	public  void  testElementMapIsEmptyCriteria () {
8589		doInJPA ( this ::entityManagerFactory , entityManager  -> {
8690			final  HibernateCriteriaBuilder  cb  = (HibernateCriteriaBuilder ) entityManager .getCriteriaBuilder ();
@@ -96,15 +100,15 @@ public void testElementMapIsEmptyCriteria() {
96100	}
97101
98102	@ Test 
99- 	@ TestForIssue (  jiraKey  =  " HHH-11225"  )
103+ 	@ Jira ( "https://hibernate.atlassian.net/browse/ HHH-11225" )
100104	public  void  testEntityMapIsEmptyHql () {
101105		doInJPA ( this ::entityManagerFactory , entityManager  -> {
102106			entityManager .createQuery ( "select a from Article a where a.translations is empty"  ).getResultList ();
103107		});
104108	}
105109
106110	@ Test 
107- 	@ TestForIssue (  jiraKey  =  " HHH-11225"  )
111+ 	@ Jira ( "https://hibernate.atlassian.net/browse/ HHH-11225" )
108112	public  void  testEntityMapIsEmptyCriteria () {
109113		doInJPA ( this ::entityManagerFactory , entityManager  -> {
110114			final  HibernateCriteriaBuilder  cb  = (HibernateCriteriaBuilder ) entityManager .getCriteriaBuilder ();
@@ -146,15 +150,15 @@ public void testCollectionSizeCriteria() {
146150	}
147151
148152	@ Test 
149- 	@ TestForIssue (  jiraKey  =  " HHH-11225"  )
153+ 	@ Jira ( "https://hibernate.atlassian.net/browse/ HHH-11225" )
150154	public  void  testElementMapSizeHql () {
151155		doInJPA ( this ::entityManagerFactory , entityManager  -> {
152156			entityManager .createQuery ( "select m from MapEntity m where size( m.localized ) > 1"  ).getResultList ();
153157		});
154158	}
155159
156160	@ Test 
157- 	@ TestForIssue (  jiraKey  =  " HHH-11225"  )
161+ 	@ Jira ( "https://hibernate.atlassian.net/browse/ HHH-11225" )
158162	public  void  testElementMapSizeCriteria () {
159163		doInJPA ( this ::entityManagerFactory , entityManager  -> {
160164			final  HibernateCriteriaBuilder  cb  = (HibernateCriteriaBuilder ) entityManager .getCriteriaBuilder ();
@@ -170,15 +174,15 @@ public void testElementMapSizeCriteria() {
170174	}
171175
172176	@ Test 
173- 	@ TestForIssue (  jiraKey  =  " HHH-11225"  )
177+ 	@ Jira ( "https://hibernate.atlassian.net/browse/ HHH-11225" )
174178	public  void  testEntityMapSizeHql () {
175179		doInJPA ( this ::entityManagerFactory , entityManager  -> {
176180			entityManager .createQuery ( "select a from Article a where size(a.translations) > 1"  ).getResultList ();
177181		});
178182	}
179183
180184	@ Test 
181- 	@ TestForIssue (  jiraKey  =  " HHH-11225"  )
185+ 	@ Jira ( "https://hibernate.atlassian.net/browse/ HHH-11225" )
182186	public  void  testEntityMapSizeCriteria () {
183187		doInJPA ( this ::entityManagerFactory , entityManager  -> {
184188			final  HibernateCriteriaBuilder  cb  = (HibernateCriteriaBuilder ) entityManager .getCriteriaBuilder ();
@@ -193,4 +197,31 @@ public void testEntityMapSizeCriteria() {
193197		});
194198	}
195199
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+ 	}
196227}
0 commit comments