Skip to content

Commit cf6359d

Browse files
committed
HHH-19126 Add test for issue
1 parent a65e615 commit cf6359d

File tree

1 file changed

+40
-9
lines changed

1 file changed

+40
-9
lines changed

hibernate-core/src/test/java/org/hibernate/orm/test/jpa/criteria/paths/PluralAttributeExpressionsTest.java

Lines changed: 40 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,9 @@
99
import java.util.ArrayList;
1010
import java.util.Collections;
1111
import java.util.List;
12+
import java.util.Map;
13+
14+
import jakarta.persistence.criteria.CriteriaBuilder;
1215
import jakarta.persistence.criteria.CriteriaQuery;
1316
import jakarta.persistence.criteria.Root;
1417

@@ -24,10 +27,11 @@
2427
import org.hibernate.query.criteria.HibernateCriteriaBuilder;
2528
import org.hibernate.query.criteria.JpaExpression;
2629

27-
import org.hibernate.testing.TestForIssue;
30+
import org.hibernate.testing.orm.junit.Jira;
2831

2932
import org.junit.jupiter.api.Test;
3033

34+
import static org.assertj.core.api.Assertions.assertThat;
3135
import 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

Comments
 (0)