@@ -18,10 +18,10 @@ public class BytecodeEnhancementMetadataPocoImpl : IBytecodeEnhancementMetadata
18
18
public static IBytecodeEnhancementMetadata From (
19
19
PersistentClass persistentClass ,
20
20
ICollection < LazyPropertyDescriptor > lazyPropertyDescriptors ,
21
- ISet < string > unwrapProxyPropertyNames )
21
+ ICollection < UnwrapProxyPropertyDescriptor > unwrapProxyPropertyDescriptors )
22
22
{
23
23
var mappedClass = persistentClass . MappedClass ;
24
- var enhancedForLazyLoading = lazyPropertyDescriptors ? . Count > 0 || unwrapProxyPropertyNames ? . Count > 0 ;
24
+ var enhancedForLazyLoading = lazyPropertyDescriptors ? . Count > 0 || unwrapProxyPropertyDescriptors ? . Count > 0 ;
25
25
26
26
// We have to check all subclasses if any of them is enhanced for lazy loading as the
27
27
// root class will be enhanced when any of the subclasses is enhanced, even if it
@@ -40,15 +40,20 @@ public static IBytecodeEnhancementMetadata From(
40
40
}
41
41
}
42
42
43
- var lazyAttributesMetadata = enhancedForLazyLoading
44
- ? LazyPropertiesMetadata . From ( persistentClass . EntityName , lazyPropertyDescriptors , unwrapProxyPropertyNames )
43
+ var lazyPropertiesMetadata = enhancedForLazyLoading
44
+ ? LazyPropertiesMetadata . From ( persistentClass . EntityName , lazyPropertyDescriptors )
45
45
: LazyPropertiesMetadata . NonEnhanced ( persistentClass . EntityName ) ;
46
46
47
+ var unwrapProxyPropertiesMetadata = enhancedForLazyLoading
48
+ ? UnwrapProxyPropertiesMetadata . From ( persistentClass . EntityName , unwrapProxyPropertyDescriptors )
49
+ : UnwrapProxyPropertiesMetadata . NonEnhanced ( persistentClass . EntityName ) ;
50
+
47
51
return new BytecodeEnhancementMetadataPocoImpl (
48
52
persistentClass . EntityName ,
49
53
mappedClass ,
50
54
enhancedForLazyLoading ,
51
- lazyAttributesMetadata
55
+ lazyPropertiesMetadata ,
56
+ unwrapProxyPropertiesMetadata
52
57
) ;
53
58
}
54
59
@@ -92,12 +97,14 @@ public BytecodeEnhancementMetadataPocoImpl(
92
97
string entityName ,
93
98
System . Type entityType ,
94
99
bool enhancedForLazyLoading ,
95
- LazyPropertiesMetadata lazyPropertiesMetadata )
100
+ LazyPropertiesMetadata lazyPropertiesMetadata ,
101
+ UnwrapProxyPropertiesMetadata unwrapProxyPropertiesMetadata )
96
102
{
97
103
EntityName = entityName ;
98
104
_entityType = entityType ;
99
105
EnhancedForLazyLoading = enhancedForLazyLoading ;
100
106
LazyPropertiesMetadata = lazyPropertiesMetadata ;
107
+ UnwrapProxyPropertiesMetadata = unwrapProxyPropertiesMetadata ;
101
108
}
102
109
103
110
/// <inheritdoc />
@@ -109,6 +116,9 @@ public BytecodeEnhancementMetadataPocoImpl(
109
116
/// <inheritdoc />
110
117
public LazyPropertiesMetadata LazyPropertiesMetadata { get ; }
111
118
119
+ /// <inheritdoc />
120
+ public UnwrapProxyPropertiesMetadata UnwrapProxyPropertiesMetadata { get ; }
121
+
112
122
/// <inheritdoc />
113
123
public IFieldInterceptor InjectInterceptor ( object entity , bool lazyPropertiesAreUnfetched , ISessionImplementor session )
114
124
{
@@ -133,7 +143,7 @@ public IFieldInterceptor InjectInterceptor(object entity, bool lazyPropertiesAre
133
143
LazyPropertiesMetadata . HasLazyProperties && lazyPropertiesAreUnfetched
134
144
? new HashSet < string > ( LazyPropertiesMetadata . LazyPropertyNames )
135
145
: null ,
136
- LazyPropertiesMetadata . UnwrapProxyPropertyNames ,
146
+ UnwrapProxyPropertiesMetadata . UnwrapProxyPropertyNames ,
137
147
EntityName ,
138
148
_entityType ) ;
139
149
fieldInterceptorAccessor . FieldInterceptor = fieldInterceptorImpl ;
0 commit comments