@@ -108,10 +108,9 @@ protected override IInstantiator BuildInstantiator(PersistentClass persistentCla
108
108
}
109
109
}
110
110
111
- protected override IProxyFactory BuildProxyFactory ( PersistentClass persistentClass , IGetter idGetter ,
112
- ISetter idSetter )
111
+ protected override IProxyFactory BuildProxyFactory ( PersistentClass persistentClass , IGetter idGetter , ISetter idSetter )
113
112
{
114
- bool needAccesorCheck = true ; // NH specific (look the comment below)
113
+ bool isInterface = false ; // NH specific (look the comment below)
115
114
116
115
// determine the id getter and setter methods from the proxy interface (if any)
117
116
// determine all interfaces needed by the resulting proxy
@@ -120,27 +119,27 @@ protected override IProxyFactory BuildProxyFactory(PersistentClass persistentCla
120
119
System . Type _mappedClass = persistentClass . MappedClass ;
121
120
System . Type _proxyInterface = persistentClass . ProxyInterface ;
122
121
123
- if ( _proxyInterface != null && ! _mappedClass . Equals ( _proxyInterface ) )
122
+ if ( _proxyInterface != null && _mappedClass != _proxyInterface )
124
123
{
125
124
if ( ! _proxyInterface . IsInterface )
126
125
{
127
126
throw new MappingException ( "proxy must be either an interface, or the class itself: " + EntityName ) ;
128
127
}
129
- needAccesorCheck = false ; // NH (the proxy is an interface all properties can be overridden)
128
+ isInterface = true ; // NH (the proxy is an interface all properties can be overridden)
130
129
proxyInterfaces . Add ( _proxyInterface ) ;
131
130
}
132
131
133
132
if ( _mappedClass . IsInterface )
134
133
{
135
- needAccesorCheck = false ; // NH (the mapped class is an interface all properties can be overridden)
134
+ isInterface = true ; // NH (the mapped class is an interface all properties can be overridden)
136
135
proxyInterfaces . Add ( _mappedClass ) ;
137
136
}
138
137
139
138
foreach ( Subclass subclass in persistentClass . SubclassIterator )
140
139
{
141
140
System . Type subclassProxy = subclass . ProxyInterface ;
142
141
System . Type subclassClass = subclass . MappedClass ;
143
- if ( subclassProxy != null && ! subclassClass . Equals ( subclassProxy ) )
142
+ if ( subclassProxy != null && subclassClass != subclassProxy )
144
143
{
145
144
if ( ! subclassProxy . IsInterface )
146
145
{
@@ -155,7 +154,7 @@ protected override IProxyFactory BuildProxyFactory(PersistentClass persistentCla
155
154
* - Check if the logger is enabled
156
155
* - Don't need nothing to check if the mapped-class or proxy is an interface
157
156
*/
158
- if ( log . IsErrorEnabled ( ) && needAccesorCheck )
157
+ if ( ! isInterface && log . IsErrorEnabled ( ) )
159
158
{
160
159
LogPropertyAccessorsErrors ( persistentClass ) ;
161
160
}
@@ -173,8 +172,15 @@ protected override IProxyFactory BuildProxyFactory(PersistentClass persistentCla
173
172
IProxyFactory pf = BuildProxyFactoryInternal ( persistentClass , idGetter , idSetter ) ;
174
173
try
175
174
{
176
- pf . PostInstantiate ( EntityName , _mappedClass , proxyInterfaces , proxyGetIdentifierMethod , proxySetIdentifierMethod ,
177
- persistentClass . HasEmbeddedIdentifier ? ( IAbstractComponentType ) persistentClass . Identifier . Type : null ) ;
175
+ pf . PostInstantiate (
176
+ EntityName ,
177
+ isInterface ? typeof ( object ) : _mappedClass ,
178
+ proxyInterfaces ,
179
+ proxyGetIdentifierMethod ,
180
+ proxySetIdentifierMethod ,
181
+ persistentClass . HasEmbeddedIdentifier
182
+ ? ( IAbstractComponentType ) persistentClass . Identifier . Type
183
+ : null ) ;
178
184
}
179
185
catch ( HibernateException he )
180
186
{
0 commit comments