66
77import jakarta .persistence .Entity ;
88import jakarta .persistence .FetchType ;
9- import jakarta .persistence .GeneratedValue ;
109import jakarta .persistence .Id ;
1110import jakarta .persistence .JoinColumn ;
1211import jakarta .persistence .ManyToOne ;
13- import jakarta .persistence .OneToOne ;
1412import org .hibernate .testing .orm .junit .EntityManagerFactoryScope ;
1513import org .hibernate .testing .orm .junit .JiraKey ;
1614import org .hibernate .testing .orm .junit .Jpa ;
2523 annotatedClasses = {
2624 JpaProxyComplianceEnabledTest .Provider .class ,
2725 JpaProxyComplianceEnabledTest .TelephoneNumber .class ,
28- JpaProxyComplianceEnabledTest .VoiceGroup .class ,
2926 },
3027 proxyComplianceEnabled = true
3128)
32- @ JiraKey ( "HHH-19476" )
29+ @ JiraKey ("HHH-19476" )
3330public class JpaProxyComplianceEnabledTest {
3431
35- private static final Integer VOICE_GROUP_ID = 1 ;
32+ private static final Integer PROVIDER_ID = 1 ;
33+ private static final Integer TELEPHONE_NUMBER_ID = 2 ;
3634
3735 @ BeforeAll
3836 public static void init (EntityManagerFactoryScope scope ) {
39- scope .inTransaction (
40- entityManager -> {
41- VoiceGroup voiceGroup = new VoiceGroup (VOICE_GROUP_ID );
42- entityManager .persist ( voiceGroup );
43-
44- Provider provider = new Provider ("A Provider" );
45- entityManager .persist ( provider );
46-
47- TelephoneNumber telephoneNumber1 = new TelephoneNumber ("123-456-7890" ,voiceGroup ,provider );
48- entityManager .persist ( telephoneNumber1 );
49- }
50- );
37+ scope .inTransaction ( entityManager -> {
38+ Provider provider = new Provider ( PROVIDER_ID , "A Provider" );
39+ entityManager .persist ( provider );
40+
41+ TelephoneNumber telephoneNumber1 = new TelephoneNumber (
42+ TELEPHONE_NUMBER_ID ,
43+ "123-456-7890" ,
44+ provider
45+ );
46+ entityManager .persist ( telephoneNumber1 );
47+ } );
5148 }
5249
5350 @ Test
5451 public void testJoinFetchAfterFind (EntityManagerFactoryScope scope ) {
55- scope .inTransaction (
56- entityManager -> {
57- VoiceGroup voiceGroup = entityManager .find (VoiceGroup .class , VOICE_GROUP_ID );
58- List <TelephoneNumber > telephoneNumbers = entityManager .createQuery (
59- "from TelephoneNumber t join fetch t.provider where t.voiceGroup = :voiceGroup" ,
60- TelephoneNumber .class
61- )
62- .setParameter ( "voiceGroup" , voiceGroup )
63- .getResultList ();
64- assertThat (telephoneNumbers .size ()).isEqualTo (1 );
65- }
66-
67- );
68- scope .inTransaction (
69- entityManager -> {
70- VoiceGroup voiceGroup = entityManager .find ( VoiceGroup .class , VOICE_GROUP_ID );
71- voiceGroup .getPrimaryNumber ().getNumber ();
52+ scope .inTransaction ( entityManager -> {
53+ TelephoneNumber telephoneNumber = entityManager .find ( TelephoneNumber .class , TELEPHONE_NUMBER_ID );
7254 List <TelephoneNumber > telephoneNumbers = entityManager .createQuery (
73- "from TelephoneNumber t join fetch t.provider where t.voiceGroup = :voiceGroup" ,
74- TelephoneNumber .class
75- )
76- .setParameter ( "voiceGroup" , voiceGroup )
55+ "from TelephoneNumber t join fetch t.provider" ,
56+ TelephoneNumber .class )
7757 .getResultList ();
78- assertThat (telephoneNumbers .size ()).isEqualTo (1 );
58+ assertThat ( telephoneNumbers .size () ).isEqualTo ( 1 );
7959 }
8060 );
8161 }
8262
83- @ Entity (name = "VoiceGroup" )
84- public static class VoiceGroup {
85- @ Id
86- private Integer id ;
87- @ OneToOne
88- @ JoinColumn (name = "primaryNumber" )
89- private TelephoneNumber primaryNumber ;
90-
91- public VoiceGroup () {
92- }
93-
94- public VoiceGroup (Integer id ) {
95- this .id = id ;
96- }
97-
98- public Integer getId () {
99- return id ;
100- }
101-
102- public TelephoneNumber getPrimaryNumber () {
103- return primaryNumber ;
104- }
105- }
106-
10763 @ Entity (name = "TelephoneNumber" )
10864 public static class TelephoneNumber {
10965 @ Id
110- @ GeneratedValue
11166 private Integer id ;
67+
11268 private String number ;
113- @ ManyToOne (fetch = FetchType .LAZY )
114- @ JoinColumn (name = "voiceGroup" , nullable = false )
115- private VoiceGroup voiceGroup ;
69+
11670 @ ManyToOne (fetch = FetchType .LAZY )
11771 @ JoinColumn (name = "provider" , nullable = false )
11872 private Provider provider ;
11973
12074 public TelephoneNumber () {
12175 }
12276
123- public TelephoneNumber (String number , VoiceGroup voiceGroup , Provider provider ) {
77+ public TelephoneNumber (Integer id , String number , Provider provider ) {
78+ this .id = id ;
12479 this .number = number ;
125- this .voiceGroup = voiceGroup ;
126- voiceGroup .primaryNumber = this ;
12780 this .provider = provider ;
12881 }
82+
12983 public Integer getId () {
13084 return id ;
13185 }
@@ -134,10 +88,6 @@ public String getNumber() {
13488 return number ;
13589 }
13690
137- public VoiceGroup getVoiceGroup () {
138- return voiceGroup ;
139- }
140-
14191 public Provider getProvider () {
14292 return provider ;
14393 }
@@ -147,14 +97,15 @@ public Provider getProvider() {
14797 public static class Provider {
14898
14999 @ Id
150- @ GeneratedValue
151100 private Integer id ;
101+
152102 private String name ;
153103
154104 public Provider () {
155105 }
156106
157- public Provider (String name ) {
107+ public Provider (Integer id , String name ) {
108+ this .id = id ;
158109 this .name = name ;
159110 }
160111
0 commit comments