1515import jakarta .persistence .TypedQuery ;
1616import org .assertj .core .api .InstanceOfAssertFactories ;
1717import org .hibernate .Session ;
18- import org .hibernate .orm .test .jpa .BaseEntityManagerFunctionalTestCase ;
1918import org .hibernate .query .NativeQuery ;
19+ import org .hibernate .testing .orm .junit .EntityManagerFactoryScope ;
2020import org .hibernate .testing .orm .junit .JiraKey ;
21- import org .junit .After ;
22- import org .junit .Before ;
23- import org .junit .Test ;
21+ import org .hibernate .testing .orm .junit .Jpa ;
22+ import org .junit .jupiter .api .AfterEach ;
23+ import org .junit .jupiter .api .BeforeEach ;
24+ import org .junit .jupiter .api .Test ;
2425
2526import java .util .List ;
2627
2728import static org .assertj .core .api .Assertions .assertThat ;
28- import static org .hibernate .testing .transaction .TransactionUtil .doInJPA ;
29- import static org .junit .Assert .assertEquals ;
30- import static org .junit .Assert .assertThrows ;
29+ import static org .junit .jupiter .api .Assertions .assertEquals ;
30+ import static org .junit .jupiter .api .Assertions .assertThrows ;
3131
3232/**
3333 * @author Andrea Boriero
3434 */
3535@ JiraKey (value = "HHH-11092" )
36- public class NamedQueryTest extends BaseEntityManagerFunctionalTestCase {
36+ @ Jpa (annotatedClasses = {NamedQueryTest .Game .class })
37+ public class NamedQueryTest {
3738
3839 private static final String [] GAME_TITLES = { "Halo" , "Grand Theft Auto" , "NetHack" };
3940
40- @ Override
41- public Class [] getAnnotatedClasses () {
42- return new Class [] { Game .class };
43- }
44-
45- @ Before
46- public void setUp ()
41+ @ BeforeEach
42+ public void setUp (EntityManagerFactoryScope scope )
4743 throws Exception {
48- doInJPA ( this :: entityManagerFactory , entityManager -> {
44+ scope . inTransaction ( entityManager -> {
4945 for ( String title : GAME_TITLES ) {
5046 Game game = new Game ( title );
5147 entityManager .persist ( game );
5248 }
5349 } );
5450 }
5551
56- @ After
57- public void tearDown () {
58- doInJPA ( this :: entityManagerFactory , entityManager -> {
52+ @ AfterEach
53+ public void tearDown (EntityManagerFactoryScope scope ) {
54+ scope . inTransaction ( entityManager -> {
5955 entityManager .createQuery ( "delete from Game" ).executeUpdate ();
6056 }
6157 );
6258 }
6359
6460 @ Test
65- public void testNamedQueriesOrdinalParametersAreOneBased () {
66- doInJPA ( this :: entityManagerFactory , entityManager -> {
61+ public void testNamedQueriesOrdinalParametersAreOneBased (EntityManagerFactoryScope scope ) {
62+ scope . inTransaction ( entityManager -> {
6763 Query query = entityManager .createNamedQuery ( "NamedQuery" );
6864 query .setParameter ( 1 , GAME_TITLES [0 ] );
6965 List list = query .getResultList ();
@@ -73,8 +69,8 @@ public void testNamedQueriesOrdinalParametersAreOneBased() {
7369 }
7470
7571 @ Test
76- public void testNamedQueryOrdinalParametersConflict () {
77- doInJPA ( this :: entityManagerFactory , entityManager -> {
72+ public void testNamedQueryOrdinalParametersConflict (EntityManagerFactoryScope scope ) {
73+ scope . inTransaction ( entityManager -> {
7874 Query query = entityManager .createNamedQuery ( "NamedQuery" );
7975 query .setParameter ( 1 , GAME_TITLES [0 ] );
8076 List list = query .getResultList ();
@@ -92,8 +88,8 @@ public void testNamedQueryOrdinalParametersConflict() {
9288 }
9389
9490 @ Test
95- public void testNamedQueryOrdinalParametersConflict2 () {
96- doInJPA ( this :: entityManagerFactory , entityManager -> {
91+ public void testNamedQueryOrdinalParametersConflict2 (EntityManagerFactoryScope scope ) {
92+ scope . inTransaction ( entityManager -> {
9793 Query query = entityManager .createNamedQuery ( "NamedQuery" );
9894 query .setParameter ( 1 , GAME_TITLES [0 ] );
9995 List list = query .getResultList ();
@@ -111,8 +107,8 @@ public void testNamedQueryOrdinalParametersConflict2() {
111107 }
112108
113109 @ Test
114- public void testNativeNamedQueriesOrdinalParametersAreOneBased () {
115- doInJPA ( this :: entityManagerFactory , entityManager -> {
110+ public void testNativeNamedQueriesOrdinalParametersAreOneBased (EntityManagerFactoryScope scope ) {
111+ scope . inTransaction ( entityManager -> {
116112 Query query = entityManager .createNamedQuery ( "NamedNativeQuery" );
117113 query .setParameter ( 1 , GAME_TITLES [0 ] );
118114 List list = query .getResultList ();
@@ -122,8 +118,8 @@ public void testNativeNamedQueriesOrdinalParametersAreOneBased() {
122118 }
123119
124120 @ Test
125- public void testNativeNamedQueriesOrdinalParametersConflict () {
126- doInJPA ( this :: entityManagerFactory , entityManager -> {
121+ public void testNativeNamedQueriesOrdinalParametersConflict (EntityManagerFactoryScope scope ) {
122+ scope . inTransaction ( entityManager -> {
127123 Query query = entityManager .createNamedQuery ( "NamedNativeQuery" );
128124 query .setParameter ( 1 , GAME_TITLES [0 ] );
129125 List list = query .getResultList ();
@@ -142,8 +138,8 @@ public void testNativeNamedQueriesOrdinalParametersConflict() {
142138 }
143139
144140 @ Test
145- public void testNativeNamedQueriesOrdinalParametersConflict2 () {
146- doInJPA ( this :: entityManagerFactory , entityManager -> {
141+ public void testNativeNamedQueriesOrdinalParametersConflict2 (EntityManagerFactoryScope scope ) {
142+ scope . inTransaction ( entityManager -> {
147143 Query query = entityManager .createNamedQuery ( "NamedNativeQuery" );
148144 query .setParameter ( 1 , GAME_TITLES [0 ] );
149145 List list = query .getResultList ();
@@ -163,8 +159,8 @@ public void testNativeNamedQueriesOrdinalParametersConflict2() {
163159
164160 @ Test
165161 @ JiraKey (value = "HHH-12621" )
166- public void testNativeQueriesFromNamedQueriesDoNotShareQuerySpaces () {
167- doInJPA ( this :: entityManagerFactory , entityManager -> {
162+ public void testNativeQueriesFromNamedQueriesDoNotShareQuerySpaces (EntityManagerFactoryScope scope ) {
163+ scope . inTransaction ( entityManager -> {
168164 Query originalQuery = entityManager .createNativeQuery ( "select g from Game g where title = ?1" );
169165 entityManager .getEntityManagerFactory ().addNamedQuery ( "myQuery" , originalQuery );
170166
@@ -182,23 +178,23 @@ public void testNativeQueriesFromNamedQueriesDoNotShareQuerySpaces() {
182178
183179 @ Test
184180 @ JiraKey (value = "HHH-11413" )
185- public void testNamedNativeQueryExceptionNoResultDefined () {
186- doInJPA ( this :: entityManagerFactory , entityManager -> {
181+ public void testNamedNativeQueryExceptionNoResultDefined (EntityManagerFactoryScope scope ) {
182+ scope . inTransaction ( entityManager -> {
187183 assertThrows (
188- "Named query exists but its result type is not compatible" ,
189184 IllegalArgumentException .class ,
190- () -> entityManager .createNamedQuery ( "NamedNativeQuery" , Game .class )
185+ () -> entityManager .createNamedQuery ( "NamedNativeQuery" , Game .class ),
186+ "Named query exists but its result type is not compatible"
191187 );
192188 } );
193189 }
194190
195191 @ Test
196192 @ JiraKey (value = "HHH-11413" )
197- public void testNamedQueryAddedFromTypedNativeQuery () {
198- doInJPA ( this :: entityManagerFactory , entityManager -> {
193+ public void testNamedQueryAddedFromTypedNativeQuery (EntityManagerFactoryScope scope ) {
194+ scope . inTransaction ( entityManager -> {
199195 final Query query = entityManager .createNativeQuery (
200196 "select g.title from Game g where title = ?" , String .class );
201- entityManagerFactory ().addNamedQuery ( "the-query" , query );
197+ scope . getEntityManagerFactory ().addNamedQuery ( "the-query" , query );
202198
203199 final TypedQuery <String > namedQuery = entityManager .createNamedQuery ( "the-query" , String .class );
204200 namedQuery .setParameter ( 1 , "abc" );
@@ -208,9 +204,9 @@ public void testNamedQueryAddedFromTypedNativeQuery() {
208204
209205 @ Test
210206 @ JiraKey ("HHH-17566" )
211- public void testNamedQueryAddedFromEntityNativeQuery () {
207+ public void testNamedQueryAddedFromEntityNativeQuery (EntityManagerFactoryScope scope ) {
212208 // Check that the native query works
213- doInJPA ( this :: entityManagerFactory , entityManager -> {
209+ scope . inTransaction ( entityManager -> {
214210 final Query query = entityManager .createNativeQuery (
215211 "select g.* from Game g where title = ?" , Game .class );
216212 query .setParameter ( 1 , "Halo" );
@@ -221,10 +217,10 @@ public void testNamedQueryAddedFromEntityNativeQuery() {
221217 .returns ( "Halo" , Game ::getTitle );
222218 } );
223219 // Check corresponding named query can be used as a typed query
224- doInJPA ( this :: entityManagerFactory , entityManager -> {
220+ scope . inTransaction ( entityManager -> {
225221 final Query query = entityManager .createNativeQuery (
226222 "select g.* from Game g where title = ?" , Game .class );
227- entityManagerFactory ().addNamedQuery ( "the-query" , query );
223+ scope . getEntityManagerFactory ().addNamedQuery ( "the-query" , query );
228224
229225 final TypedQuery <Game > namedQuery = entityManager .createNamedQuery ( "the-query" , Game .class );
230226 namedQuery .setParameter ( 1 , "Halo" );
@@ -237,9 +233,9 @@ public void testNamedQueryAddedFromEntityNativeQuery() {
237233
238234 @ Test
239235 @ JiraKey ("HHH-17566" )
240- public void testNamedQueryAddedFromEntityNativeQueryUsedAsUntyped () {
236+ public void testNamedQueryAddedFromEntityNativeQueryUsedAsUntyped (EntityManagerFactoryScope scope ) {
241237 // Check corresponding named query can be used as an untyped query
242- doInJPA ( this :: entityManagerFactory , entityManager -> {
238+ scope . inTransaction ( entityManager -> {
243239 final Query query = entityManager .createNativeQuery (
244240 "select g.* from Game g where title = ?" , Game .class );
245241 query .setParameter ( 1 , "Halo" );
@@ -250,10 +246,10 @@ public void testNamedQueryAddedFromEntityNativeQueryUsedAsUntyped() {
250246 .returns ( "Halo" , Game ::getTitle );
251247 } );
252248 // Check naming the native query works
253- doInJPA ( this :: entityManagerFactory , entityManager -> {
249+ scope . inTransaction ( entityManager -> {
254250 final Query query = entityManager .createNativeQuery (
255251 "select g.* from Game g where title = ?" , Game .class );
256- entityManagerFactory ().addNamedQuery ( "the-query" , query );
252+ scope . getEntityManagerFactory ().addNamedQuery ( "the-query" , query );
257253
258254 final Query namedQuery = entityManager .createNamedQuery ( "the-query" );
259255 namedQuery .setParameter ( 1 , "Halo" );
0 commit comments