A phrase I see a lot here is "as":
session.as( AuditReader.class ).someEnversSpecificMethod()
session.as( FullTextSession.class )...
On 04/06/2011 06:26 AM, Adam Warski wrote:
On Apr 6, 2011, at 1:20 PM, Steve Ebersole wrote:
> The phrase 'unwrap' might be a bit misleading there because you may not be
dealing with wrapped objects. But the idea itself is still solid I believe. Think of it
more as a multi-directional cast
Right, the idea sounds good; so it would be something like a per-session service? :)
Envers could use it as well, right now just as search has Search.getFullTextSession,
envers has AuditReaderFactory.getFor
So we could have session.service(AuditReader.class / FullTextSession.class).
> On Apr 6, 2011 6:15 AM, "Adam Warski"<adam(a)warski.org> wrote:
>>> 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?
>> But while EntityManager wraps a Session object, a Session doesn't wrap a
FullTextSession, but the other way round, no?
>> Adam Warski
>> hibernate-dev mailing list