|
4 | 4 | */ |
5 | 5 | package org.hibernate.orm.test.entitygraph; |
6 | 6 |
|
7 | | -import java.util.Collection; |
8 | 7 | import java.util.Date; |
9 | 8 | import java.util.List; |
10 | | -import jakarta.persistence.AttributeNode; |
| 9 | + |
11 | 10 | import jakarta.persistence.Entity; |
12 | 11 | import jakarta.persistence.EntityGraph; |
13 | 12 | import jakarta.persistence.EntityManager; |
|
21 | 20 | import jakarta.persistence.Temporal; |
22 | 21 | import jakarta.persistence.TemporalType; |
23 | 22 | import jakarta.persistence.TypedQuery; |
24 | | -import jakarta.persistence.metamodel.Attribute; |
25 | | -import jakarta.persistence.metamodel.EntityType; |
26 | 23 |
|
27 | 24 | import org.hibernate.graph.GraphSemantic; |
28 | 25 |
|
|
32 | 29 | import org.hibernate.testing.orm.junit.SessionFactoryScope; |
33 | 30 | import org.junit.jupiter.api.Test; |
34 | 31 |
|
35 | | -import static org.hamcrest.CoreMatchers.is; |
36 | 32 | import static org.hamcrest.MatcherAssert.assertThat; |
37 | | -import static org.hibernate.testing.hamcrest.CollectionMatchers.hasSize; |
38 | 33 | import static org.hibernate.testing.hamcrest.InitializationCheckMatcher.isInitialized; |
39 | 34 |
|
40 | 35 | /** |
@@ -143,68 +138,6 @@ void fetchAttributeNodeByStringFromSubgraph(SessionFactoryScope scope) { |
143 | 138 | query.setHint( GraphSemantic.LOAD.getJpaHintName(), entityGraph ); |
144 | 139 | final List<CustomerOrder> results = query.getResultList(); |
145 | 140 |
|
146 | | - assertEntityGraph( entityGraph ); |
147 | | - assertThat( results, isInitialized() ); |
148 | | - } |
149 | | - ); |
150 | | - } |
151 | | - |
152 | | - @Test |
153 | | - @JiraKey( value = "HHH-13233") |
154 | | - @SuppressWarnings({ "unchecked", "rawtypes" }) |
155 | | - void fetchAttributeNodeByAttributeFromSubgraph(SessionFactoryScope scope) { |
156 | | - scope.inTransaction( |
157 | | - session -> { |
158 | | - Address address = new Address(); |
159 | | - address.city = "TestCity"; |
160 | | - |
161 | | - CustomerOrder customerOrder = new CustomerOrder(); |
162 | | - customerOrder.shippingAddress = address; |
163 | | - |
164 | | - Product product = new Product(); |
165 | | - |
166 | | - OrderPosition orderPosition = new OrderPosition(); |
167 | | - orderPosition.product = product; |
168 | | - |
169 | | - customerOrder.orderPosition = orderPosition; |
170 | | - session.persist( address ); |
171 | | - session.persist( orderPosition ); |
172 | | - session.persist( product ); |
173 | | - session.persist( customerOrder ); |
174 | | - } |
175 | | - ); |
176 | | - |
177 | | - scope.inTransaction( |
178 | | - session -> { |
179 | | - final EntityManager em = session.unwrap( EntityManager.class ); |
180 | | - final EntityGraph<CustomerOrder> entityGraph = em.createEntityGraph( CustomerOrder.class ); |
181 | | - EntityType<CustomerOrder> customerOrderEntityType = |
182 | | - scope.getSessionFactory().getMetamodel().entity( CustomerOrder.class ); |
183 | | - entityGraph.addAttributeNodes( |
184 | | - customerOrderEntityType.getAttribute( "shippingAddress" ), |
185 | | - customerOrderEntityType.getAttribute( "orderDate" ) |
186 | | - ); |
187 | | - entityGraph.addAttributeNodes( customerOrderEntityType.getAttribute( "shippingAddress" ) ); |
188 | | - |
189 | | - final Subgraph<OrderPosition> orderProductsSubgraph = |
190 | | - entityGraph.addSubgraph( (Attribute) customerOrderEntityType.getAttribute( "orderPosition" ) ); |
191 | | - EntityType<OrderPosition> positionEntityType = |
192 | | - scope.getSessionFactory().getMetamodel().entity( OrderPosition.class ); |
193 | | - orderProductsSubgraph.addAttributeNodes( positionEntityType.getAttribute( "amount" ) ); |
194 | | - orderProductsSubgraph.addAttributeNodes( positionEntityType.getAttribute( "product" ) ); |
195 | | - |
196 | | - final Subgraph<Product> productSubgraph = |
197 | | - orderProductsSubgraph.addSubgraph( (Attribute) positionEntityType.getAttribute( "product" ) ); |
198 | | - EntityType<Product> productEntityType = scope.getSessionFactory().getMetamodel().entity( Product.class ); |
199 | | - productSubgraph.addAttributeNodes( productEntityType.getAttribute( "productName" ) ); |
200 | | - |
201 | | - TypedQuery<CustomerOrder> query = em.createQuery( |
202 | | - "SELECT o FROM CustomerOrder o", CustomerOrder.class |
203 | | - ); |
204 | | - query.setHint( GraphSemantic.LOAD.getJpaHintName(), entityGraph ); |
205 | | - final List<CustomerOrder> results = query.getResultList(); |
206 | | - |
207 | | - assertEntityGraph( entityGraph ); |
208 | 141 | assertThat( results, isInitialized() ); |
209 | 142 | } |
210 | 143 | ); |
@@ -250,37 +183,6 @@ void fetchUsingHql(SessionFactoryScope scope) { |
250 | 183 | ); |
251 | 184 | } |
252 | 185 |
|
253 | | - /** |
254 | | - * Verify that entityGraph has expected state |
255 | | - * |
256 | | - * customerOrder - shippingAddress |
257 | | - * - orderDate |
258 | | - * - orderPosition - amount |
259 | | - * - product - productName |
260 | | - * |
261 | | - * @param entityGraph entityGraph |
262 | | - */ |
263 | | - private void assertEntityGraph(EntityGraph<CustomerOrder> entityGraph) { |
264 | | - assertThat(entityGraph.getAttributeNodes(), hasSize( 3 ) ); |
265 | | - for ( AttributeNode<?> entityGraphAttributeNode : entityGraph.getAttributeNodes() ) { |
266 | | - if ( "orderPosition".equals( entityGraphAttributeNode.getAttributeName() ) ) { |
267 | | - Collection<Subgraph> orderPositionGraph = entityGraphAttributeNode.getSubgraphs().values(); |
268 | | - assertThat( orderPositionGraph, hasSize( 1 ) ); |
269 | | - List<AttributeNode<?>> orderPositionAttributes = orderPositionGraph.iterator().next().getAttributeNodes(); |
270 | | - assertThat( orderPositionAttributes, hasSize( 2 ) ); |
271 | | - for ( AttributeNode<?> orderPositionAttributeNode : orderPositionAttributes ) { |
272 | | - if ( "product".equals( orderPositionAttributeNode.getAttributeName() ) ) { |
273 | | - assertThat( orderPositionAttributeNode.getSubgraphs().entrySet(), hasSize( 1 ) ); |
274 | | - } else { |
275 | | - assertThat( orderPositionAttributeNode.getSubgraphs().isEmpty(), is( true ) ); |
276 | | - } |
277 | | - } |
278 | | - } else { |
279 | | - assertThat( entityGraphAttributeNode.getSubgraphs().isEmpty(), is( true ) ); |
280 | | - } |
281 | | - } |
282 | | - } |
283 | | - |
284 | 186 | @Entity(name = "CustomerOrder") |
285 | 187 | @Table(name = "customerOrder") |
286 | 188 | public static class CustomerOrder { |
|
0 commit comments