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