[hibernate-dev] Integrator and retrieving objects
Scott Marlow
smarlow at redhat.com
Wed Apr 6 10:57:34 EDT 2011
I like it. I tried to do something generically in the AS7 JPA code to
have a protected bag of such things at the container EntityManager
level. Just keep in mind that AS will try to serialize the objects when
clustering.
See
https://github.com/jbossas/jboss-as/blob/master/jpa/src/main/java/org/jboss/as/jpa/container/AbstractEntityManager.java
protected void addExtension(Class cls, Object extension) {
extensions.put(cls, extension);
}
public <T> T unwrap(Class<T> cls) {
Object x = extensions.get(cls);
if (x != null)
return (T) x;
return getEntityManager().unwrap(cls);
}
Also see some unwrap tests in
https://github.com/jbossas/jboss-as/tree/master/testsuite/integration/src/test/java/org/jboss/as/testsuite/integration/jpa/hibernate
The SFSBHibernateSession test bean is based on the generic JPA
EntityManager.unwrap(Class) we discussed before.
Scott
On 04/05/2011 03:19 AM, Emmanuel Bernard wrote:
> In JPA and other Java specs, there is a pattern emerging where one could unwrap some objects from a common API
>
> interface EntityManager {
> T unwrap(Class<T> type);
> }
>
> We typically let a Session be extracted from an EntityManager
>
> Session session = entityManager.unwrap(Session.class);
>
> I wonder if we want do provide a possibility for third party Hibernate integrators to let some objects be unwrapped.
>
> FullTextSession ftSession = session.unwrap(FullTextSession.class);
> //the current approach is via some static helper method
> //FullTextSession ftSession = Search.getFullTextSession(session);
>
> That would mean that the integration point between HSearch and Hibernate would have an unwrap method and Hibernate would delegate the unwrap calls to each integrator until a non null object is returned.
>
> It's just a thought, WDYT?
> _______________________________________________
> hibernate-dev mailing list
> hibernate-dev at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/hibernate-dev
More information about the hibernate-dev
mailing list