Skip to content

Commit e2b3925

Browse files
committed
HHH-19126 Add test for issue
1 parent aed7d18 commit e2b3925

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
@@ -7,6 +7,9 @@
77
import java.util.ArrayList;
88
import java.util.Collections;
99
import java.util.List;
10+
import java.util.Map;
11+
12+
import jakarta.persistence.criteria.CriteriaBuilder;
1013
import jakarta.persistence.criteria.CriteriaQuery;
1114
import jakarta.persistence.criteria.Root;
1215

@@ -22,10 +25,11 @@
2225
import org.hibernate.query.criteria.HibernateCriteriaBuilder;
2326
import org.hibernate.query.criteria.JpaExpression;
2427

25-
import org.hibernate.testing.orm.junit.JiraKey;
28+
import org.hibernate.testing.orm.junit.Jira;
2629

2730
import org.junit.jupiter.api.Test;
2831

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

Comments
 (0)