Skip to content

Commit da2d5aa

Browse files
committed
Various code cleanup
1 parent f5c548b commit da2d5aa

File tree

1 file changed

+52
-50
lines changed

1 file changed

+52
-50
lines changed

hibernate-core/src/test/java/org/hibernate/orm/test/hql/joinedSubclass/JoinedSubclassNativeQueryTest.java

Lines changed: 52 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -4,75 +4,77 @@
44
*/
55
package org.hibernate.orm.test.hql.joinedSubclass;
66

7-
import org.hibernate.cfg.AvailableSettings;
8-
import org.hibernate.engine.spi.SessionFactoryImplementor;
9-
import org.hibernate.type.SqlTypes;
10-
11-
import org.hibernate.testing.orm.junit.JiraKey;
12-
import org.hibernate.testing.orm.junit.DomainModel;
13-
import org.hibernate.testing.orm.junit.SessionFactory;
14-
import org.hibernate.testing.orm.junit.SessionFactoryScope;
15-
import org.junit.jupiter.api.AfterAll;
16-
import org.junit.jupiter.api.Assertions;
17-
import org.junit.jupiter.api.BeforeAll;
18-
import org.junit.jupiter.api.Test;
19-
207
import jakarta.persistence.Basic;
218
import jakarta.persistence.Column;
229
import jakarta.persistence.Entity;
2310
import jakarta.persistence.GeneratedValue;
2411
import jakarta.persistence.Id;
2512
import jakarta.persistence.Inheritance;
2613
import jakarta.persistence.InheritanceType;
14+
import org.hibernate.cfg.AvailableSettings;
15+
import org.hibernate.engine.spi.SessionFactoryImplementor;
16+
import org.hibernate.testing.orm.junit.DomainModel;
17+
import org.hibernate.testing.orm.junit.JiraKey;
18+
import org.hibernate.testing.orm.junit.SessionFactory;
19+
import org.hibernate.testing.orm.junit.SessionFactoryScope;
20+
import org.hibernate.type.SqlTypes;
21+
import org.junit.jupiter.api.AfterEach;
22+
import org.junit.jupiter.api.BeforeEach;
23+
import org.junit.jupiter.api.Test;
24+
25+
import java.util.Locale;
26+
27+
import static org.assertj.core.api.Assertions.assertThat;
2728

2829
/**
2930
* @author Jan Schatteman
3031
*/
31-
@DomainModel(
32-
annotatedClasses = {
33-
JoinedSubclassNativeQueryTest.Person.class,
34-
JoinedSubclassNativeQueryTest.Employee.class
35-
}
36-
)
32+
@DomainModel( annotatedClasses = {
33+
JoinedSubclassNativeQueryTest.Person.class,
34+
JoinedSubclassNativeQueryTest.Employee.class
35+
} )
3736
@SessionFactory
37+
@SuppressWarnings("JUnitMalformedDeclaration")
3838
public class JoinedSubclassNativeQueryTest {
3939

40-
@BeforeAll
41-
public void setup(SessionFactoryScope scope) {
42-
scope.inTransaction(
43-
session -> {
44-
Person p = new Person();
45-
p.setFirstName( "Jan" );
46-
session.persist( p );
47-
}
40+
@Test
41+
@JiraKey( value = "HHH-16180")
42+
public void testJoinedInheritanceNativeQuery(SessionFactoryScope scope) {
43+
final SessionFactoryImplementor sessionFactory = scope.getSessionFactory();
44+
final String nullColumnString = sessionFactory
45+
.getJdbcServices()
46+
.getDialect()
47+
.getSelectClauseNullString( SqlTypes.VARCHAR, sessionFactory.getTypeConfiguration() );
48+
49+
final String qry = String.format(
50+
Locale.ROOT,
51+
"select p.*, %s as company_name, 0 as clazz_ from Person p",
52+
nullColumnString
4853
);
54+
55+
scope.inTransaction( (session) -> {
56+
// PostgreSQLDialect#getSelectClauseNullString produces e.g. `null::text` which we interpret as parameter,
57+
// so workaround this problem by configuring to ignore JDBC parameters
58+
session.setProperty( AvailableSettings.NATIVE_IGNORE_JDBC_PARAMETERS, true );
59+
60+
Person p = session.createNativeQuery( qry, Person.class ).getSingleResult();
61+
assertThat( p ).isNotNull();
62+
assertThat( p.getFirstName() ).isEqualTo( "Jan" );
63+
} );
4964
}
5065

51-
@AfterAll
52-
public void tearDown(SessionFactoryScope scope) {
53-
scope.inTransaction(
54-
session -> session.createMutationQuery( "delete from Person" ).executeUpdate()
55-
);
66+
@BeforeEach
67+
public void setup(SessionFactoryScope scope) {
68+
scope.inTransaction( (session) -> {
69+
Person p = new Person();
70+
p.setFirstName( "Jan" );
71+
session.persist( p );
72+
} );
5673
}
5774

58-
@Test
59-
@JiraKey( value = "HHH-16180")
60-
public void testJoinedInheritanceNativeQuery(SessionFactoryScope scope) {
61-
scope.inTransaction(
62-
session -> {
63-
final SessionFactoryImplementor sessionFactory = scope.getSessionFactory();
64-
final String nullColumnString = sessionFactory
65-
.getJdbcServices()
66-
.getDialect()
67-
.getSelectClauseNullString( SqlTypes.VARCHAR, sessionFactory.getTypeConfiguration() );
68-
// PostgreSQLDialect#getSelectClauseNullString produces e.g. `null::text` which we interpret as parameter,
69-
// so workaround this problem by configuring to ignore JDBC parameters
70-
session.setProperty( AvailableSettings.NATIVE_IGNORE_JDBC_PARAMETERS, true );
71-
Person p = (Person) session.createNativeQuery( "select p.*, " + nullColumnString + " as company_name, 0 as clazz_ from Person p", Person.class ).getSingleResult();
72-
Assertions.assertNotNull( p );
73-
Assertions.assertEquals( p.getFirstName(), "Jan" );
74-
}
75-
);
75+
@AfterEach
76+
public void tearDown(SessionFactoryScope scope) {
77+
scope.getSessionFactory().getSchemaManager().truncate();
7678
}
7779

7880
@Entity(name = "Person")

0 commit comments

Comments
 (0)