44 */
55package org .hibernate .orm .test .query ;
66
7- import java .sql .Statement ;
8- import java .sql .Types ;
9- import java .util .List ;
10- import java .util .Map ;
11-
7+ import jakarta .persistence .Entity ;
8+ import jakarta .persistence .Id ;
9+ import jakarta .persistence .Table ;
10+ import org .hibernate .boot .registry .StandardServiceRegistryBuilder ;
1211import org .hibernate .cfg .AvailableSettings ;
1312import org .hibernate .dialect .AbstractTransactSQLDialect ;
1413import org .hibernate .dialect .DmlTargetColumnQualifierSupport ;
1514import org .hibernate .dialect .OracleDialect ;
1615import org .hibernate .dialect .SybaseDialect ;
1716import org .hibernate .engine .jdbc .connections .spi .ConnectionProvider ;
17+ import org .hibernate .engine .spi .SessionFactoryImplementor ;
18+ import org .hibernate .query .MutationQuery ;
1819import org .hibernate .query .NativeQuery ;
19- import org .hibernate .query .Query ;
20- import org .hibernate .type .descriptor .java .StringJavaType ;
21- import org .hibernate .type .descriptor .jdbc .JdbcType ;
22-
23- import org .hibernate .testing .DialectChecks ;
24- import org .hibernate .testing .RequiresDialectFeature ;
25- import org .hibernate .testing .orm .junit .JiraKey ;
26- import org .hibernate .testing .junit4 .BaseNonConfigCoreFunctionalTestCase ;
2720import org .hibernate .testing .orm .jdbc .PreparedStatementSpyConnectionProvider ;
21+ import org .hibernate .testing .orm .junit .BaseSessionFactoryFunctionalTest ;
2822import org .hibernate .testing .orm .junit .DialectContext ;
29- import org .junit .Before ;
30- import org .junit .Test ;
23+ import org .hibernate .testing .orm .junit .DialectFeatureChecks ;
24+ import org .hibernate .testing .orm .junit .JiraKey ;
25+ import org .hibernate .testing .orm .junit .RequiresDialectFeature ;
26+ import org .hibernate .type .descriptor .java .StringJavaType ;
27+ import org .hibernate .type .descriptor .jdbc .JdbcType ;
28+ import org .junit .jupiter .api .BeforeEach ;
29+ import org .junit .jupiter .api .Test ;
3130
32- import jakarta . persistence . Entity ;
33- import jakarta . persistence . Id ;
34- import jakarta . persistence . Table ;
31+ import java . sql . Statement ;
32+ import java . sql . Types ;
33+ import java . util . List ;
3534
3635import static org .hibernate .jpa .SpecHints .HINT_SPEC_QUERY_TIMEOUT ;
37- import static org .hibernate .testing .transaction .TransactionUtil .doInHibernate ;
38- import static org .junit .Assert .fail ;
3936import static org .junit .jupiter .api .Assertions .assertEquals ;
37+ import static org .junit .jupiter .api .Assertions .fail ;
4038
4139/**
4240 * @author Gail Badner
4341 */
44- @ RequiresDialectFeature (DialectChecks .SupportsJdbcDriverProxying .class )
45- public class QueryTimeOutTest extends BaseNonConfigCoreFunctionalTestCase {
42+ @ RequiresDialectFeature (feature = DialectFeatureChecks .SupportsJdbcDriverProxying .class )
43+ public class QueryTimeOutTest extends BaseSessionFactoryFunctionalTest {
4644
47- private static final PreparedStatementSpyConnectionProvider CONNECTION_PROVIDER = new PreparedStatementSpyConnectionProvider (
48- );
45+ private static final PreparedStatementSpyConnectionProvider CONNECTION_PROVIDER =
46+ new PreparedStatementSpyConnectionProvider ( );
4947 private static final String QUERY = "update AnEntity set name='abc'" ;
50-
5148 private String expectedSqlQuery ;
5249
5350 @ Override
5451 protected Class [] getAnnotatedClasses () {
55- return new Class [] { AnEntity .class };
52+ return new Class [] {AnEntity .class };
5653 }
5754
5855 @ Override
59- protected void addSettings ( Map < String , Object > settings ) {
60- if ( settings . containsKey ( AvailableSettings . CONNECTION_PROVIDER ) ) {
61- CONNECTION_PROVIDER . setConnectionProvider ( ( ConnectionProvider ) settings . get ( AvailableSettings .CONNECTION_PROVIDER ) );
62- }
63- settings . put ( AvailableSettings .CONNECTION_PROVIDER , CONNECTION_PROVIDER );
56+ protected void applySettings ( StandardServiceRegistryBuilder builer ) {
57+ ConnectionProvider connectionProvider = ( ConnectionProvider ) builer . getSettings ()
58+ . get ( AvailableSettings .CONNECTION_PROVIDER );
59+ CONNECTION_PROVIDER . setConnectionProvider ( connectionProvider );
60+ builer . applySetting ( AvailableSettings .CONNECTION_PROVIDER , CONNECTION_PROVIDER );
6461 }
6562
66- @ Before
63+ @ BeforeEach
6764 public void before () {
6865 CONNECTION_PROVIDER .clear ();
69- final JdbcType jdbcType = sessionFactory ().getTypeConfiguration ().getJdbcTypeRegistry ().getDescriptor (
70- Types .VARCHAR
71- );
66+ SessionFactoryImplementor sessionFactoryImplementor = sessionFactory ();
67+ final JdbcType jdbcType = sessionFactoryImplementor .getTypeConfiguration ().getJdbcTypeRegistry ()
68+ .getDescriptor (
69+ Types .VARCHAR
70+ );
7271 final String baseQuery ;
7372 if ( DialectContext .getDialect () instanceof OracleDialect ) {
7473 baseQuery = "update AnEntity ae1_0 set ae1_0.name=?" ;
@@ -79,7 +78,8 @@ else if ( DialectContext.getDialect() instanceof SybaseDialect ) {
7978 else if ( DialectContext .getDialect () instanceof AbstractTransactSQLDialect ) {
8079 baseQuery = "update ae1_0 set name=? from AnEntity ae1_0" ;
8180 }
82- else if ( DialectContext .getDialect ().getDmlTargetColumnQualifierSupport () == DmlTargetColumnQualifierSupport .NONE ) {
81+ else if ( DialectContext .getDialect ()
82+ .getDmlTargetColumnQualifierSupport () == DmlTargetColumnQualifierSupport .NONE ) {
8383 baseQuery = "update AnEntity set name=?" ;
8484 }
8585 else {
@@ -90,18 +90,17 @@ else if ( DialectContext.getDialect().getDmlTargetColumnQualifierSupport() == Dm
9090 jdbcType .getJdbcLiteralFormatter ( StringJavaType .INSTANCE )
9191 .toJdbcLiteral (
9292 "abc" ,
93- sessionFactory () .getJdbcServices ().getDialect (),
94- sessionFactory () .getWrapperOptions ()
93+ sessionFactoryImplementor .getJdbcServices ().getDialect (),
94+ sessionFactoryImplementor .getWrapperOptions ()
9595 )
9696 );
9797 }
9898
9999 @ Test
100100 @ JiraKey (value = "HHH-12075" )
101101 public void testCreateQuerySetTimeout () {
102- doInHibernate (
103- this ::sessionFactory , session -> {
104- Query query = session .createQuery ( QUERY );
102+ inTransaction ( session -> {
103+ MutationQuery query = session .createMutationQuery ( QUERY );
105104 query .setTimeout ( 123 );
106105 query .executeUpdate ();
107106
@@ -115,7 +114,7 @@ public void testCreateQuerySetTimeout() {
115114 assertEquals ( 0 , setQueryTimeoutCalls .get ( 1 )[0 ] );
116115 }
117116 catch (Exception ex ) {
118- fail ( "should not have thrown exception " );
117+ fail ( "should not have thrown exceptioinTransaction( session -> {n " );
119118 }
120119 }
121120 );
@@ -124,9 +123,8 @@ public void testCreateQuerySetTimeout() {
124123 @ Test
125124 @ JiraKey (value = "HHH-12075" )
126125 public void testCreateQuerySetTimeoutHint () {
127- doInHibernate (
128- this ::sessionFactory , session -> {
129- Query query = session .createQuery ( QUERY );
126+ inTransaction ( session -> {
127+ MutationQuery query = session .createMutationQuery ( QUERY );
130128 query .setHint ( HINT_SPEC_QUERY_TIMEOUT , 123000 );
131129 query .executeUpdate ();
132130
@@ -149,8 +147,7 @@ public void testCreateQuerySetTimeoutHint() {
149147 @ Test
150148 @ JiraKey (value = "HHH-12075" )
151149 public void testCreateNativeQuerySetTimeout () {
152- doInHibernate (
153- this ::sessionFactory , session -> {
150+ inTransaction ( session -> {
154151 NativeQuery query = session .createNativeQuery ( QUERY );
155152 query .setTimeout ( 123 );
156153 query .executeUpdate ();
@@ -174,8 +171,7 @@ public void testCreateNativeQuerySetTimeout() {
174171 @ Test
175172 @ JiraKey (value = "HHH-12075" )
176173 public void testCreateNativeQuerySetTimeoutHint () {
177- doInHibernate (
178- this ::sessionFactory , session -> {
174+ inTransaction ( session -> {
179175 NativeQuery query = session .createNativeQuery ( QUERY );
180176 query .setHint ( HINT_SPEC_QUERY_TIMEOUT , 123000 );
181177 query .executeUpdate ();
@@ -199,8 +195,7 @@ public void testCreateNativeQuerySetTimeoutHint() {
199195 @ Test
200196 @ JiraKey (value = "HHH-12075" )
201197 public void testCreateSQLQuerySetTimeout () {
202- doInHibernate (
203- this ::sessionFactory , session -> {
198+ inTransaction ( session -> {
204199 NativeQuery query = session .createNativeQuery ( QUERY );
205200 query .setTimeout ( 123 );
206201 query .executeUpdate ();
@@ -224,8 +219,7 @@ public void testCreateSQLQuerySetTimeout() {
224219 @ Test
225220 @ JiraKey (value = "HHH-12075" )
226221 public void testCreateSQLQuerySetTimeoutHint () {
227- doInHibernate (
228- this ::sessionFactory , session -> {
222+ inTransaction ( session -> {
229223 NativeQuery query = session .createNativeQuery ( QUERY );
230224 query .setHint ( HINT_SPEC_QUERY_TIMEOUT , 123000 );
231225 query .executeUpdate ();
0 commit comments