Skip to content

Commit 96a7231

Browse files
committed
Various code cleanup
1 parent 3656bb8 commit 96a7231

File tree

3 files changed

+82
-63
lines changed

3 files changed

+82
-63
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
/*
2+
* SPDX-License-Identifier: LGPL-2.1-or-later
3+
* Copyright Red Hat Inc. and Hibernate Authors
4+
*/
5+
package org.hibernate.orm.test.jpa.criteria.paths;
6+
7+
import jakarta.persistence.criteria.CriteriaBuilder;
8+
import jakarta.persistence.criteria.CriteriaQuery;
9+
import jakarta.persistence.criteria.From;
10+
import jakarta.persistence.criteria.Path;
11+
import jakarta.persistence.criteria.Root;
12+
import jakarta.persistence.metamodel.EntityType;
13+
import org.hibernate.cfg.AvailableSettings;
14+
import org.hibernate.testing.orm.junit.EntityManagerFactoryScope;
15+
import org.hibernate.testing.orm.junit.Jpa;
16+
import org.hibernate.testing.orm.junit.Setting;
17+
import org.junit.jupiter.api.Test;
18+
19+
/**
20+
* Test query paths (both HQL and Criteria) with dynamic models
21+
*/
22+
@SuppressWarnings("JUnitMalformedDeclaration")
23+
@Jpa(
24+
integrationSettings = {@Setting(name = AvailableSettings.JPA_METAMODEL_POPULATION, value = "enabled")},
25+
xmlMappings = {"org/hibernate/orm/test/jpa/criteria/paths/dynamic-model.hbm.xml"}
26+
)
27+
public class DynamicModelSingularAttributeJoinTest {
28+
@Test
29+
void testHql(EntityManagerFactoryScope scope) {
30+
scope.inTransaction( (entityManager) -> {
31+
entityManager.createQuery( "select d.id from Distribution d" ).getResultList();
32+
entityManager.createQuery( "select p.id from Policy p" ).getResultList();
33+
entityManager.createQuery( "select p.id from Distribution d join d.policy p" ).getResultList();
34+
} );
35+
}
36+
37+
@Test
38+
public void testCriteria(EntityManagerFactoryScope scope) {
39+
final EntityType<?> distributionType = scope.getEntityManagerFactory().getMetamodel().entity( "Distribution" );
40+
final EntityType<?> policyType = scope.getEntityManagerFactory().getMetamodel().entity( "Policy" );
41+
42+
scope.inEntityManager( (entityManager) -> {
43+
final CriteriaBuilder criteriaBuilder = entityManager.getCriteriaBuilder();
44+
45+
final CriteriaQuery<Integer> criteriaQuery = criteriaBuilder.createQuery( Integer.class );
46+
final Root<?> root = criteriaQuery.from( distributionType );
47+
final Path<Integer> distributionId = root.get( "id" );
48+
criteriaQuery.select( distributionId );
49+
50+
entityManager.createQuery( criteriaQuery ).getResultList();
51+
52+
} );
53+
54+
scope.inEntityManager( (entityManager) -> {
55+
final CriteriaBuilder criteriaBuilder = entityManager.getCriteriaBuilder();
56+
57+
final CriteriaQuery<Integer> criteriaQuery = criteriaBuilder.createQuery( Integer.class );
58+
final Root<?> root = criteriaQuery.from( policyType );
59+
final Path<Integer> policyId = root.get( "id" );
60+
criteriaQuery.select( policyId );
61+
62+
entityManager.createQuery( criteriaQuery ).getResultList();
63+
} );
64+
65+
scope.inEntityManager( (entityManager) -> {
66+
final CriteriaBuilder criteriaBuilder = entityManager.getCriteriaBuilder();
67+
68+
final CriteriaQuery<Integer> criteriaQuery = criteriaBuilder.createQuery( Integer.class );
69+
final Root<?> root = criteriaQuery.from( distributionType );
70+
final From<?, ?> join = root.join( "policy" );
71+
final Path<Integer> policyId = join.get( "id" );
72+
criteriaQuery.select( policyId );
73+
74+
entityManager.createQuery( criteriaQuery ).getResultList();
75+
} );
76+
}
77+
}

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

Lines changed: 0 additions & 54 deletions
This file was deleted.
Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -10,16 +10,12 @@
1010
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
1111

1212
<hibernate-mapping package="org.hibernate.orm.test.jpa.criteria.paths">
13-
<class entity-name="Policy" table="POLICY_TABLE">
14-
<id name="policyId" type="int" column="policyId">
15-
<generator class="assigned"/>
16-
</id>
13+
<class entity-name="Policy" table="policies">
14+
<id name="id" type="int" column="id"/>
1715
</class>
1816

19-
<class entity-name="Distribution" table="DISTRIBUTION_TABLE">
20-
<id name="distributionId" type="int" column="distributionId">
21-
<generator class="assigned"/>
22-
</id>
23-
<many-to-one name="policy" entity-name="Policy" column="policyId"/>
17+
<class entity-name="Distribution" table="distributions">
18+
<id name="id" type="int" column="id"/>
19+
<many-to-one name="policy" entity-name="Policy" column="policy_fk"/>
2420
</class>
2521
</hibernate-mapping>

0 commit comments

Comments
 (0)