[hibernate-issues] [Hibernate-JIRA] Resolved: (HSEARCH-148) Hibernate Search does not integrate well with the Spring Framework - FullTextSessionImpl needs fixes

Emmanuel Bernard (JIRA) noreply at atlassian.com
Tue Jan 15 19:27:56 EST 2008


     [ http://opensource.atlassian.com/projects/hibernate/browse/HSEARCH-148?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Emmanuel Bernard resolved HSEARCH-148.
--------------------------------------

    Resolution: Won't Fix

No Hibernate Search has to have access to EventSource (actually SessionImplementor) because it plays with the transaction state.
so really Spring should implements all the necessary interfaces in their wrapper proxy.

> Hibernate Search does not integrate well with the Spring Framework - FullTextSessionImpl needs fixes
> ----------------------------------------------------------------------------------------------------
>
>                 Key: HSEARCH-148
>                 URL: http://opensource.atlassian.com/projects/hibernate/browse/HSEARCH-148
>             Project: Hibernate Search
>          Issue Type: Bug
>          Components: engine
>    Affects Versions: 3.0.0.GA
>            Reporter: Michael Lossos
>
> We are integrating Hibernate Search (3.0.0 GA) into an existing Hibernate / Spring Framework / Eclipse RCP configuration. Unfortunately, Hibernate Search's FullTextSessionImpl assumes that it will be passed an org.hibernate.classic.Session. When using Spring for Hibernate transaction management, Spring creates a defensive Proxy that disables the Session.close() method. This Proxy does not implement the EventSource nor classic.Session, while Hibernate Search assumes that it does and has a ClassCastException in the FullTextSessionImpl constructor.
> Hibernate Search's FullTextSessionImpl does this which is wrong for the Spring Hibernate Session Proxy:
> public FullTextSessionImpl(org.hibernate.Session session) {
> 		this.session = (Session) session;  // classic.Session!
> 		this.eventSource = (EventSource) session;
> 		this.sessionImplementor = (SessionImplementor) session;
> }
> It should be possible to rewrite FullTextSession and FullTextSessionImpl so that they do not use the org.hibernate.classic.Session but instead use the standard Hibernate Session, and thus avoid the unsafe casting.
> The workaround for this is to use HibernateTemplate.setExposeNativeSession( true ) before executing the HibernateCallback (causing the SessionImpl to be passed directly, without a Proxy). This exposes the Session to potential close() and is *not* a good idea.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://opensource.atlassian.com/projects/hibernate/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        



More information about the hibernate-issues mailing list