Skip to content

Commit dcdeb04

Browse files
cigalygavinking
authored andcommitted
HHH-18693 Test case with inner classes
Test case for Jakarta Data processing with inner classes Changed existing test class to properly check generated metamodel class @Exclude-ing "troublemakers" with illegal URI character(s) in entity name
1 parent 5cc79fb commit dcdeb04

File tree

11 files changed

+427
-1
lines changed

11 files changed

+427
-1
lines changed

hibernate-core/src/test/java/org/hibernate/orm/test/collection/bag/PersistentBagContainsTest.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
import jakarta.persistence.ManyToOne;
1515
import jakarta.persistence.OneToMany;
1616

17+
import org.hibernate.annotations.processing.Exclude;
1718
import org.hibernate.testing.orm.junit.JiraKey;
1819
import org.hibernate.testing.orm.junit.DomainModel;
1920
import org.hibernate.testing.orm.junit.SessionFactory;
@@ -34,6 +35,7 @@
3435
}
3536
)
3637
@SessionFactory
38+
@Exclude
3739
public class PersistentBagContainsTest {
3840

3941
/**

hibernate-core/src/test/java/org/hibernate/orm/test/event/entity/MergeListPreAndPostPersistTest.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
import jakarta.persistence.OneToMany;
1414

1515
import org.hibernate.Session;
16+
import org.hibernate.annotations.processing.Exclude;
1617
import org.hibernate.event.service.spi.EventListenerRegistry;
1718
import org.hibernate.event.spi.EventType;
1819
import org.hibernate.event.spi.PostInsertEvent;
@@ -31,6 +32,7 @@
3132
* @author Gail Badner
3233
*/
3334
@JiraKey( value = "HHH-9979")
35+
@Exclude
3436
public class MergeListPreAndPostPersistTest extends BaseCoreFunctionalTestCase {
3537

3638
protected Class[] getAnnotatedClasses() {

hibernate-core/src/test/java/org/hibernate/orm/test/hql/QuotedIdentifierTest.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66

77
import java.util.List;
88

9+
import org.hibernate.annotations.processing.Exclude;
910
import org.hibernate.testing.junit4.BaseCoreFunctionalTestCase;
1011
import org.junit.After;
1112
import org.junit.Before;
@@ -24,6 +25,7 @@
2425
/**
2526
* @author Christian Beikov
2627
*/
28+
@Exclude
2729
public class QuotedIdentifierTest extends BaseCoreFunctionalTestCase {
2830

2931
private Person person;

hibernate-core/src/test/java/org/hibernate/orm/test/schemaupdate/SchemaUpdateWithUseJdbcMetadataDefaultsSettingToFalseAndQuotedNameTest.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
import jakarta.persistence.Entity;
1515
import jakarta.persistence.Id;
1616

17+
import org.hibernate.annotations.processing.Exclude;
1718
import org.hibernate.boot.MetadataSources;
1819
import org.hibernate.boot.registry.StandardServiceRegistry;
1920
import org.hibernate.boot.registry.StandardServiceRegistryBuilder;
@@ -36,6 +37,7 @@
3637
import static org.junit.Assert.assertThat;
3738

3839
@JiraKey(value = "HHH-13788")
40+
@Exclude
3941
public class SchemaUpdateWithUseJdbcMetadataDefaultsSettingToFalseAndQuotedNameTest {
4042

4143
private File updateOutputFile;
Lines changed: 82 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,82 @@
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.innerclass;
6+
7+
import jakarta.persistence.Embeddable;
8+
import jakarta.persistence.Entity;
9+
import jakarta.persistence.Id;
10+
import jakarta.persistence.MappedSuperclass;
11+
import jakarta.persistence.NamedQuery;
12+
13+
public class Dummy {
14+
@Entity(name = "Inner")
15+
@NamedQuery(name = "allInner", query = "from Inner")
16+
public static class Inner extends Persona {
17+
@Id
18+
Integer id;
19+
20+
String name;
21+
22+
public Integer getId() {
23+
return id;
24+
}
25+
26+
@Override
27+
public void setId(Integer id) {
28+
this.id = id;
29+
}
30+
31+
@Override
32+
public String getName() {
33+
return name;
34+
}
35+
36+
@Override
37+
public void setName(String name) {
38+
this.name = name;
39+
}
40+
}
41+
42+
@Embeddable
43+
public static class DummyEmbeddable {
44+
private String name;
45+
private int value;
46+
47+
public String getName() {
48+
return name;
49+
}
50+
51+
public void setName(String name) {
52+
this.name = name;
53+
}
54+
55+
public int getValue() {
56+
return value;
57+
}
58+
59+
public void setValue(int value) {
60+
this.value = value;
61+
}
62+
}
63+
64+
@MappedSuperclass
65+
public abstract static class Persona {
66+
private String city;
67+
68+
public String getCity() {
69+
return city;
70+
}
71+
72+
public void setCity(String city) {
73+
this.city = city;
74+
}
75+
76+
public abstract void setId(Integer id);
77+
78+
public abstract String getName();
79+
80+
public abstract void setName(String name);
81+
}
82+
}
Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,86 @@
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.innerclass;
6+
7+
import jakarta.persistence.Entity;
8+
import jakarta.persistence.Id;
9+
import jakarta.persistence.NamedQuery;
10+
import org.hibernate.processor.test.data.innerclass.InnerClassTest.One.Two;
11+
import org.hibernate.processor.test.util.CompilationTest;
12+
import org.hibernate.processor.test.util.WithClasses;
13+
import org.junit.Test;
14+
15+
import static org.hibernate.processor.test.util.TestUtil.assertMetamodelClassGeneratedFor;
16+
import static org.hibernate.processor.test.util.TestUtil.assertNoMetamodelClassGeneratedFor;
17+
import static org.hibernate.processor.test.util.TestUtil.getMetaModelSourceAsString;
18+
import static org.junit.Assert.assertEquals;
19+
20+
public class InnerClassTest extends CompilationTest {
21+
22+
@WithClasses({Person.class, Dummy.class, Inner.class, Two.class})
23+
@Test
24+
public void test() {
25+
System.out.println( getMetaModelSourceAsString( InnerClassTest.class ) );
26+
System.out.println( getMetaModelSourceAsString( Dummy.class ) );
27+
System.out.println( getMetaModelSourceAsString( Person.class ) );
28+
System.out.println( getMetaModelSourceAsString( InnerClassTest.class, true ) );
29+
System.out.println( getMetaModelSourceAsString( Dummy.class, true ) );
30+
System.out.println( getMetaModelSourceAsString( Person.class, true ) );
31+
assertEquals(
32+
getMetaModelSourceAsString( Inner.class ),
33+
getMetaModelSourceAsString( Two.class )
34+
);
35+
assertEquals(
36+
getMetaModelSourceAsString( Inner.class, true ),
37+
getMetaModelSourceAsString( Two.class, true )
38+
);
39+
assertMetamodelClassGeneratedFor( Inner.class );
40+
assertMetamodelClassGeneratedFor( Inner.class, true );
41+
assertMetamodelClassGeneratedFor( Two.class );
42+
assertMetamodelClassGeneratedFor( Two.class, true );
43+
assertMetamodelClassGeneratedFor( Dummy.Inner.class );
44+
assertMetamodelClassGeneratedFor( Dummy.Inner.class, true );
45+
assertMetamodelClassGeneratedFor( Person.class );
46+
assertMetamodelClassGeneratedFor( Person.class, true );
47+
assertMetamodelClassGeneratedFor( Person.PersonId.class );
48+
assertNoMetamodelClassGeneratedFor( Dummy.class );
49+
assertMetamodelClassGeneratedFor( Dummy.DummyEmbeddable.class );
50+
/*assertNoMetamodelClassGeneratedFor( Dummy.class );*/
51+
}
52+
53+
@Entity(name = "Inner")
54+
@NamedQuery(name = "allInner", query = "from Inner")
55+
public static class Inner {
56+
@Id
57+
Integer id;
58+
59+
String address;
60+
61+
public Integer getId() {
62+
return id;
63+
}
64+
65+
public void setId(Integer id) {
66+
this.id = id;
67+
}
68+
69+
public String getAddress() {
70+
return address;
71+
}
72+
73+
public void setAddress(String address) {
74+
this.address = address;
75+
}
76+
}
77+
78+
static class One {
79+
@Entity
80+
static class Two {
81+
@Id
82+
Integer id;
83+
String value;
84+
}
85+
}
86+
}
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
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.innerclass;
6+
7+
import jakarta.persistence.Embeddable;
8+
import jakarta.persistence.EmbeddedId;
9+
import jakarta.persistence.Entity;
10+
11+
/**
12+
* @author Hardy Ferentschik
13+
*/
14+
@Entity
15+
public class Person {
16+
@EmbeddedId
17+
private PersonId id;
18+
19+
private String address;
20+
21+
@Embeddable
22+
public static class PersonId {
23+
private String name;
24+
private String snn;
25+
26+
public String getName() {
27+
return name;
28+
}
29+
30+
public void setName(String name) {
31+
this.name = name;
32+
}
33+
34+
public String getSnn() {
35+
return snn;
36+
}
37+
38+
public void setSnn(String snn) {
39+
this.snn = snn;
40+
}
41+
}
42+
43+
44+
}
Lines changed: 82 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,82 @@
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.innerclass;
6+
7+
import jakarta.persistence.Embeddable;
8+
import jakarta.persistence.Entity;
9+
import jakarta.persistence.Id;
10+
import jakarta.persistence.MappedSuperclass;
11+
import jakarta.persistence.NamedQuery;
12+
13+
public class Dummy {
14+
@Entity(name = "Inner")
15+
@NamedQuery(name = "allInner", query = "from Inner")
16+
public static class Inner extends Persona {
17+
@Id
18+
Integer id;
19+
20+
String name;
21+
22+
public Integer getId() {
23+
return id;
24+
}
25+
26+
@Override
27+
public void setId(Integer id) {
28+
this.id = id;
29+
}
30+
31+
@Override
32+
public String getName() {
33+
return name;
34+
}
35+
36+
@Override
37+
public void setName(String name) {
38+
this.name = name;
39+
}
40+
}
41+
42+
@Embeddable
43+
public static class DummyEmbeddable {
44+
private String name;
45+
private int value;
46+
47+
public String getName() {
48+
return name;
49+
}
50+
51+
public void setName(String name) {
52+
this.name = name;
53+
}
54+
55+
public int getValue() {
56+
return value;
57+
}
58+
59+
public void setValue(int value) {
60+
this.value = value;
61+
}
62+
}
63+
64+
@MappedSuperclass
65+
public abstract static class Persona {
66+
private String city;
67+
68+
public String getCity() {
69+
return city;
70+
}
71+
72+
public void setCity(String city) {
73+
this.city = city;
74+
}
75+
76+
public abstract void setId(Integer id);
77+
78+
public abstract String getName();
79+
80+
public abstract void setName(String name);
81+
}
82+
}

0 commit comments

Comments
 (0)