and
// This method work when Environment.UseProxyValidator is off
System.Type clazz = persistentClass.MappedClass;
foreach (Mapping.Property property in persistentClass.PropertyIterator)
{
MethodInfo method = property.GetGetter(clazz).Method;
if (!proxyValidator.IsProxeable(method))
{
log.Error(
string.Format("Getters of lazy classes cannot be final: {0}.{1}",
persistentClass.MappedClass.FullName,
              property.Name));
}
method = property.GetSetter(clazz).Method;
if (!proxyValidator.IsProxeable(method))
{
log.Error(
string.Format("Setters of lazy classes cannot be final: {0}.{1}",
persistentClass.MappedClass.FullName,
              property.Name));
}
}
there is a clear un-sync between the validator and the proxyFactory.
Thanks.

On Mon, Apr 18, 2011 at 1:56 PM, Fabio Maulo <[email protected]> wrote:

> every things work perfect.
> The "limitation"you are talking about is the same for other properties. We
> only forget to check the Id setter in case of:
> public virtual string YourProp
> {
> get;
> *private set;*
> }
>
> For other methods, than Id, you can see the exception message saying:
> method set_YourProp should be 'public/protected virtual' or 'protected
> internal virtual'
>
> On Mon, Apr 18, 2011 at 1:45 PM, Ricardo Peres <[email protected]> wrote:
>
>> Fabio,
>>
>> You mean I can't have an id property with a private setter? Is that a
>> removable limitation imposed by the new proxy generator? If so, I will
>> create a JIRA issue. To me, it is interesting to not let people
>> directly set values for id properties, because they normally shouldn
>> be set by NHibernate.
>> BTW, did you have the chance to look at the collection null issue?
>>
>> Many thanks!
>>
>> RP
>>
>>
>> On Apr 18, 5:40 pm, Fabio Maulo <[email protected]> wrote:
>> > The "problem" is the ProxyValidator.
>> > I'll fix it thanks.
>> >
>> > NOTE: I said you that private accessors can't be proxied.
>> >
>> >
>> >
>> >
>> >
>> >
>> >
>> >
>> >
>> > On Mon, Apr 18, 2011 at 12:12 PM, Ricardo Peres <[email protected]>
>> wrote:
>> > > Yes, I have. I placed a link on all these JIRA issues:
>> > >
>> http://cid-0450c015fc418de2.office.live.com/self.aspx/.Public/NHTest.zip.
>> > > Like I said, I only want a second opinion, I may be doing something
>> > > wrong.
>> >
>> > > RP
>> >
>> > > On Apr 18, 4:00 pm, Fabio Maulo <[email protected]> wrote:
>> > > > If you have a failing test we can see it.
>> > > > The embedded provider are passing all NH3.1 tests and more.
>> >
>> > > > On Mon, Apr 18, 2011 at 11:34 AM, Ricardo Peres <[email protected]>
>> > > wrote:
>> > > > > Fabio,
>> >
>> > > > > The current trunk version has problems with lazy loading as well:
>> not
>> > > > > setting id properties with private setter and setting collections
>> to
>> > > > > null. As you know, I have created tickets for this and have made
>> > > > > available a demo project. This behavior does not happen with the
>> > > > > Castle bytecode provider as of NHibernate version 3.1 or with lazy
>> > > > > loading disabled. As I said, I may have done something wrong,
>> though,
>> > > > > and the erroneous behavior can be my fault.
>> >
>> > > > > RP
>> >
>> > > > > On Apr 18, 3:01 pm, Fabio Maulo <[email protected]> wrote:
>> > > > > > What mean "old"? how much it is old ?
>> > > > > > Try the version deployed with NH3.1.0 and only change the
>> signature
>> > > of
>> > > > > one
>> > > > > > proxy-factory method.
>> >
>> > > > > > On Mon, Apr 18, 2011 at 8:15 AM, Ricardo Peres <
>> [email protected]>
>> > > > > wrote:
>> > > > > > > Did you try defining your entity as lazy="true"?
>> > > > > > > It must be lazy in order to use lazy properties.
>> > > > > > > However, I do think there's a bug with Castle bytecode
>> provider,
>> > > and I
>> > > > > > > have submitted a JIRA issue:
>> http://216.121.112.228/browse/NH-2646.
>> >
>> > > > > > > RP
>> >
>> > > > > > > On Apr 18, 9:45 am, kor <[email protected]> wrote:
>> > > > > > > > i have a problem, probably about proxy dll conflict (i'm
>> writing
>> > > > > here,
>> > > > > > > > not in jira, becouse i think that is not a bug, only a
>> > > configuration
>> > > > > > > > problem).
>> > > > > > > > i'm using .net 2.0, with the version 3.1.0.4000 all works,
>> with
>> > > the
>> > > > > > > > new version (built by myself or downloaded by nhforge) i
>> have a
>> > > > > > > > problem when using Session.Get
>> > > > > > > > for a class that has a property with lazy="true".
>> >
>> > > > > > > > with the new nh version i have this exception
>> > > > > > > > NHibernate.Exceptions.GenericADOException : could not load
>> an
>> > > entity:
>> > > > > > > > ***
>> > > > > > > >   ----> System.NotSupportedException : Specified method is
>> not
>> > > > > > > > supported.
>> > > > > > > >         at
>> > > NHibernate.Loader.Loader.LoadEntity(ISessionImplementor
>> > > > > > > session,
>> > > > > > > > Object id, IType identifierType, Object optionalObject,
>> String
>> > > > > > > > optionalEntityName, Object optionalIdentifier,
>> IEntityPersister
>> > > > > > > > persister)
>> > > > > > > >         at
>> >
>> > > > >
>> NHibernate.Loader.Entity.AbstractEntityLoader.Load(ISessionImplementor
>> > > > > > > > session, Object id, Object optionalObject, Object
>> optionalId)
>> > > > > > > >         at
>> > > NHibernate.Loader.Entity.AbstractEntityLoader.Load(Object
>> > > > > id,
>> > > > > > > > Object optionalObject, ISessionImplementor session)
>> > > > > > > >         at
>> > > > > > >
>> NHibernate.Persister.Entity.AbstractEntityPersister.Load(Object
>> > > > > > > > id, Object optionalObject, LockMode lockMode,
>> ISessionImplementor
>> > > > > > > > session)
>> > > > > > > >         at
>> >
>> > >
>> NHibernate.Event.Default.DefaultLoadEventListener.LoadFromDatasource(LoadEv
>> > > > > > > ent
>> > > > > > > > event, IEntityPersister persister, EntityKey keyToLoad,
>> LoadType
>> > > > > > > > options)
>> > > > > > > >         at
>> > > > > > >
>> NHibernate.Event.Default.DefaultLoadEventListener.DoLoad(LoadEvent
>> > > > > > > > event, IEntityPersister persister, EntityKey keyToLoad,
>> LoadType
>> > > > > > > > options)
>> > > > > > > >         at
>> > > > > > >
>> NHibernate.Event.Default.DefaultLoadEventListener.Load(LoadEvent
>> > > > > > > > event, IEntityPersister persister, EntityKey keyToLoad,
>> LoadType
>> > > > > > > > options)
>> > > > > > > >         at
>> >
>> > > > >
>> NHibernate.Event.Default.DefaultLoadEventListener.ProxyOrLoad(LoadEvent
>> > > > > > > > event, IEntityPersister persister, EntityKey keyToLoad,
>> LoadType
>> > > > > > > > options)
>> > > > > > > >         at
>> > > > > > >
>> NHibernate.Event.Default.DefaultLoadEventListener.OnLoad(LoadEvent
>> > > > > > > > event, LoadType loadType)
>> > > > > > > >         at NHibernate.Impl.SessionImpl.FireLoad(LoadEvent
>> event,
>> > > > > LoadType
>> > > > > > > > loadType)
>> > > > > > > >         at NHibernate.Impl.SessionImpl.Get(String
>> entityName,
>> > > Object
>> > > > > id)
>> > > > > > > >         at NHibernate.Impl.SessionImpl.Get(Type entityClass,
>> > > Object
>> > > > > id)
>> > > > > > > >         at NHibernate.Impl.SessionImpl.Get[T](Object id)
>> > > > > > > >         --NotSupportedException
>> > > > > > > >         at
>> >
>> > > > >
>> NHibernate.Proxy.AbstractProxyFactory.GetFieldInterceptionProxy(Object
>> > > > > > > > instanceToWrap)
>> > > > > > > >         at NHibernate.Tuple.PocoInstantiator.Instantiate()
>> > > > > > > >         at
>> NHibernate.Tuple.PocoInstantiator.Instantiate(Object
>> > > id)
>> > > > > > > >         at
>> > > > > > >
>> NHibernate.Tuple.Entity.AbstractEntityTuplizer.Instantiate(Object
>> > > > > > > > id)
>> > > > > > > >         at
>> >
>> > > > >
>> NHibernate.Persister.Entity.AbstractEntityPersister.Instantiate(Object
>> > > > > > > > id, EntityMode entityMode)
>> > > > > > > >         at
>> > > NHibernate.Impl.SessionImpl.Instantiate(IEntityPersister
>> > > > > > > > persister, Object id)
>> > > > > > > >         at NHibernate.Impl.SessionImpl.Instantiate(String
>> clazz,
>> > > > > Object
>> > > > > > > id)
>> > > > > > > >         at
>> > > NHibernate.Loader.Loader.InstanceNotYetLoaded(IDataReader
>> > > > > dr,
>> > > > > > > > Int32 i, ILoadable persister, EntityKey key, LockMode
>> lockMode,
>> > > > > String
>> > > > > > > > rowIdAlias, EntityKey optionalObjectKey, Object
>> optionalObject,
>> > > IList
>> > > > > > > > hydratedObjects, ISessionImplementor session)
>> > > > > > > >         at NHibernate.Loader.Loader.GetRow(IDataReader rs,
>> > > > > ILoadable[]
>> > > > > > > > persisters, EntityKey[] keys, Object optionalObject,
>> EntityKey
>> > > > > > > > optionalObjectKey, LockMode[] lockModes, IList
>> hydratedObjects,
>> > > > > > > > ISessionImplementor session)
>> > > > > > > >         at
>> > > NHibernate.Loader.Loader.GetRowFromResultSet(IDataReader
>> > > > > > > > resultSet, ISessionImplementor session, QueryParameters
>> > > > > > > > queryParameters, LockMode[] lockModeArray, EntityKey
>> > > > > > > > optionalObjectKey, IList hydratedObjects, EntityKey[] keys,
>> > > Boolean
>> > > > > > > > returnProxies)
>> > > > > > > >         at
>> NHibernate.Loader.Loader.DoQuery(ISessionImplementor
>> > > > > session,
>> > > > > > > > QueryParameters queryParameters, Boolean returnProxies)
>> > > > > > > >         at
>> >
>> > >
>> NHibernate.Loader.Loader.DoQueryAndInitializeNonLazyCollections(ISessionImp
>> > > > > > > lementor
>> > > > > > > > session, QueryParameters queryParameters, Boolean
>> returnProxies)
>> > > > > > > >         at
>> > > NHibernate.Loader.Loader.LoadEntity(ISessionImplementor
>> > > > > > > session,
>> > > > > > > > Object id, IType identifierType, Object optionalObject,
>> String
>> > > > > > > > optionalEntityName, Object optionalIdentifier,
>> IEntityPersister
>> > > > > > > > persister)
>> >
>> > > > > > > > i'm using this nhibernate cfg
>> > > > > > > >   <session-factory>
>> > > > > > > >     <property
>> >
>> > >
>> name="connection.provider">NHibernate.Connection.DriverConnectionProvider</
>> > > > > > > > property>
>> > > > > > > >     <property
>> >
>> > > > >
>> name="connection.driver_class">NHibernate.Driver.FirebirdClientDriver</
>> > > > > > > > property>
>> > > > > > > >     <property
>> > > name="connection.isolation">ReadCommitted</property>
>> > > > > > > >     <property
>> > > name="connection.connection_string_name">FbConnection</
>> > > > > > > > property>
>> > > > > > > >     <property name="show_sql">false</property>
>> > > > > > > >     <property
>> name="dialect">NHibernate.Dialect.FirebirdDialect</
>> > > > > > > > property>
>> > > > > > > >     <property name="command_timeout">444</property>
>> > > > > > > >     <property name="query.substitutions">true 1, false 0,
>> yes 1,
>> > > no
>> > > > > 0</
>> > > > > > > > property>
>> > > > > > > >     <property
>> >
>> > >
>> name="current_session_context_class">NHibernate.Context.CallSessionContext,
>> > > > > > > > NHibernate</property>
>> > > > > > > >     <property
>> >
>> > >
>> name="proxyfactory.factory_class">NHibernate.ByteCode.Castle.ProxyFactoryFa
>> > > > > > > ctory,
>> > > > > > > > NHibernate.ByteCode.Castle</property>
>> > > > > > > >      <mapping assembly="***" />
>> > > > > > > >   </session-factory>
>> >
>> > > > > > > > note (i think that the problem is here): i'm referencing
>> > > > > > > > NHibernate.ByteCode.Castle.dll  3.1.0.4000 becouse i didn't
>> find
>> > > a
>> > > > > new
>> > > > > > > > version
>> >
>> > > > > > > > do samebody knows what i have wrong?
>> > > > > > > > thanks
>> >
>> > > > > > > --
>> > > > > > > You received this message because you are subscribed to the
>> Google
>> > > > > Groups
>> > > > > > > "nhusers" group.
>> > > > > > > To post to this group, send email to [email protected]
>> .
>> > > > > > > To unsubscribe from this group, send email to
>> > > > > > > [email protected].
>> > > > > > > For more options, visit this group at
>> > > > > > >http://groups.google.com/group/nhusers?hl=en.
>> >
>> > > > > > --
>> > > > > > Fabio Maulo
>> >
>> > > > > --
>> > > > > You received this message because you are subscribed to the Google
>> > > Groups
>> > > > > "nhusers" group.
>> > > > > To post to this group, send email to [email protected].
>> > > > > To unsubscribe from this group, send email to
>> > > > > [email protected].
>> > > > > For more options, visit this group at
>> > > > >http://groups.google.com/group/nhusers?hl=en.
>> >
>> > > > --
>> > > > Fabio Maulo
>> >
>> > > --
>> > > You received this message because you are subscribed to the Google
>> Groups
>> > > "nhusers" group.
>> > > To post to this group, send email to [email protected].
>> > > To unsubscribe from this group, send email to
>> > > [email protected].
>> > > For more options, visit this group at
>> > >http://groups.google.com/group/nhusers?hl=en.
>> >
>> > --
>> > Fabio Maulo
>>
>> --
>> You received this message because you are subscribed to the Google Groups
>> "nhusers" group.
>> To post to this group, send email to [email protected].
>> To unsubscribe from this group, send email to
>> [email protected].
>> For more options, visit this group at
>> http://groups.google.com/group/nhusers?hl=en.
>>
>>
>
>
> --
> Fabio Maulo
>
>


-- 
Fabio Maulo

-- 
You received this message because you are subscribed to the Google Groups 
"nhusers" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/nhusers?hl=en.

Reply via email to