Skip to content

Commit 8a4acbd

Browse files
cigalygavinking
authored andcommitted
HHH-19130 Test case - query using FQCN in JPA @NamedQuery and Jakarta Data @query
1 parent bdc0205 commit 8a4acbd

File tree

3 files changed

+76
-0
lines changed

3 files changed

+76
-0
lines changed
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
/*
2+
* SPDX-License-Identifier: LGPL-2.1-or-later
3+
* Copyright Red Hat Inc. and Hibernate Authors
4+
*/
5+
package org.hibernate.processor.test.data.fqcninquery;
6+
7+
import jakarta.persistence.EntityManager;
8+
import org.hibernate.processor.test.util.CompilationTest;
9+
import org.hibernate.processor.test.util.WithClasses;
10+
import org.junit.Test;
11+
12+
import static org.hibernate.processor.test.util.TestUtil.assertMetamodelClassGeneratedFor;
13+
import static org.hibernate.processor.test.util.TestUtil.assertPresenceOfMethodInMetamodelFor;
14+
import static org.hibernate.processor.test.util.TestUtil.getMetaModelSourceAsString;
15+
16+
public class FqcnInQueryTest extends CompilationTest {
17+
@Test
18+
@WithClasses({MyEntity.class, MyRepository.class})
19+
public void test() {
20+
System.out.println( getMetaModelSourceAsString( MyRepository.class ) );
21+
System.out.println( getMetaModelSourceAsString( MyEntity.class ) );
22+
23+
assertMetamodelClassGeneratedFor( MyRepository.class );
24+
assertMetamodelClassGeneratedFor( MyEntity.class );
25+
26+
assertPresenceOfMethodInMetamodelFor( MyEntity.class, "getName", EntityManager.class, Integer.class );
27+
assertPresenceOfMethodInMetamodelFor( MyEntity.class, "getUniqueId", EntityManager.class, String.class );
28+
29+
assertPresenceOfMethodInMetamodelFor( MyRepository.class, "getName", Integer.class );
30+
assertPresenceOfMethodInMetamodelFor( MyRepository.class, "getUniqueId", String.class );
31+
}
32+
}
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
/*
2+
* SPDX-License-Identifier: LGPL-2.1-or-later
3+
* Copyright Red Hat Inc. and Hibernate Authors
4+
*/
5+
package org.hibernate.processor.test.data.fqcninquery;
6+
7+
import jakarta.persistence.Entity;
8+
import jakarta.persistence.Id;
9+
import jakarta.persistence.NamedQuery;
10+
11+
@Entity
12+
@NamedQuery(name = "#getName",
13+
query = "select name from org.hibernate.processor.test.data.fqcninquery.MyEntity where id=:id")
14+
@NamedQuery(name = "#getUniqueId",
15+
query = "select uniqueId from MyEntity where name=:name")
16+
public class MyEntity {
17+
18+
@Id
19+
Integer id;
20+
21+
String name;
22+
23+
String uniqueId;
24+
}
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
/*
2+
* SPDX-License-Identifier: LGPL-2.1-or-later
3+
* Copyright Red Hat Inc. and Hibernate Authors
4+
*/
5+
package org.hibernate.processor.test.data.fqcninquery;
6+
7+
8+
import jakarta.data.repository.Query;
9+
import jakarta.data.repository.Repository;
10+
11+
@Repository
12+
public interface MyRepository {
13+
14+
@Query("select name from org.hibernate.processor.test.data.fqcninquery.MyEntity where id=:id")
15+
String getName(Integer id);
16+
17+
18+
@Query("select uniqueId from MyEntity where name=:name")
19+
String getUniqueId(String name);
20+
}

0 commit comments

Comments
 (0)