why are you ever in need of touching the field values directly ?

Accessing and potentially exposing the underlying object of a proxied entity should be strictly prohibted
since otherwise you easily end up with breaking ==

/max

For Hibernate Search I came to a problem.
When a user choose field access.
When I access a previously uninitialized object, and even if I initialize it (Hibernate.initialize()).

The field access End up returning null all the time because of the way lazy loading is done. I worked around that using some of the code from Hibernate.initialize()

                if ( value instanceof HibernateProxy ) {
                        value = ( ( HibernateProxy ) value 
).getHibernateLazyInitializer()
                                        .getImplementation();
                }

But it seems it really should be part of the Hibernate class contract.

I could use

                Hibernate.initialize(value);
value = session.get( Hibernate.getClass(value), session.getIdentifier(value) );

but at the present time, it's hard for me to access the session, and conceptually speaking there is no real need for it.

How about exposing this service in Hibernate class either

                value = Hibernate.initialize(value); //changing the return value
or
                value = Hibernate.getImplementation(value);

WDYT?
_______________________________________________
hibernate-dev mailing list
hibernate-dev@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/hibernate-dev



--
--
Max Rydahl Andersen
callto://max.rydahl.andersen

Hibernate
[EMAIL PROTECTED]
http://hibernate.org

JBoss a division of Red Hat
[EMAIL PROTECTED]

_______________________________________________
hibernate-dev mailing list
hibernate-dev@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/hibernate-dev

Reply via email to