Skip to content

Commit af45504

Browse files
committed
HHH-19449 proper test demoing use of static metamodel for parameter binding
1 parent 994fdd3 commit af45504

File tree

3 files changed

+81
-0
lines changed

3 files changed

+81
-0
lines changed
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
/*
2+
* SPDX-License-Identifier: Apache-2.0
3+
* Copyright Red Hat Inc. and Hibernate Authors
4+
*/
5+
package org.hibernate.orm.test.query.binding;
6+
7+
import jakarta.persistence.Embeddable;
8+
9+
@Embeddable
10+
class Address {
11+
String street;
12+
String city;
13+
String state;
14+
15+
Address() {}
16+
17+
Address(String street, String city, String state) {
18+
this.street = street;
19+
this.city = city;
20+
this.state = state;
21+
}
22+
}
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
/*
2+
* SPDX-License-Identifier: Apache-2.0
3+
* Copyright Red Hat Inc. and Hibernate Authors
4+
*/
5+
package org.hibernate.orm.test.query.binding;
6+
7+
import org.hibernate.testing.orm.junit.DomainModel;
8+
import org.hibernate.testing.orm.junit.SessionFactory;
9+
import org.hibernate.testing.orm.junit.SessionFactoryScope;
10+
import org.junit.jupiter.api.Test;
11+
12+
import static org.junit.jupiter.api.Assertions.assertEquals;
13+
14+
@SessionFactory
15+
@DomainModel(annotatedClasses = Person.class)
16+
class ParameterBindTypeTest {
17+
@Test void test(SessionFactoryScope scope) {
18+
scope.inTransaction( session -> {
19+
Address address = new Address( "Diagonal", "Barcelona", "CAT" );
20+
Person gavin = new Person( "Gavin", address );
21+
session.persist( gavin );
22+
assertEquals(1, session.createQuery( "from Person where address = :address", Person.class )
23+
.setParameter( "address", address, Address_.class_)
24+
.getResultList().size() );
25+
assertEquals(1, session.createQuery( "from Person where address = :address", Person.class )
26+
.setParameter( "address", address, Person_.address.getType())
27+
.getResultList().size() );
28+
assertEquals(1, session.createQuery( "from Person where address.street = :street", Person.class )
29+
.setParameter( "street", "Diagonal", Address_.street.getType())
30+
.getResultList().size() );
31+
assertEquals(1, session.createQuery( "from Person p where p = :person", Person.class )
32+
.setParameter( "person", new Person( "Gavin", null ), Person_.class_)
33+
.getResultList().size() );
34+
} );
35+
}
36+
37+
}
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
/*
2+
* SPDX-License-Identifier: Apache-2.0
3+
* Copyright Red Hat Inc. and Hibernate Authors
4+
*/
5+
package org.hibernate.orm.test.query.binding;
6+
7+
import jakarta.persistence.Entity;
8+
import jakarta.persistence.Id;
9+
10+
@Entity
11+
class Person {
12+
@Id
13+
String name;
14+
Address address;
15+
16+
Person() {}
17+
18+
Person(String name, Address address) {
19+
this.name = name;
20+
this.address = address;
21+
}
22+
}

0 commit comments

Comments
 (0)