[hibernate-dev] Connection proxying

Max Rydahl Andersen max.andersen at jboss.com
Wed Aug 30 03:29:59 EDT 2006


Since the intention is to provide a safer execution for the user then +1,
but if you are going to do this then i guess session.connection() will  
still be ok
since it will just be proxied.

btw. your example is a bit simplified since when hibernate runs inside an  
appserver
the user will normally also have to cast through the appservers "proxying".

( ( OracleConnection ) (( AppServerConnection )  ( HibernateConnection )  
connection ).getWrappedConnection()  
).getNativeConnection()).doSomethingOracleSpecific()

...but I guess we will then soon see NativeJdbcExtractorAdapter  
implementation for Hibernate ;)

/max



> This is in regards to the JDBC interaction code I recently committed
> into the sandbox in SVN.
>
> I am considering proxying the JDBC connections specifically for the
> purpose of auto-registering "subordinate objects" (result sets and
> statements) for automatic cleanup.  Currently the registration is a
> manual process in order to take advantage of the automatic cleanup (have
> a look at org.hibernate.jdbc4.jdbc.impl.BasicWorkTest for the basic
> usage pattern).  Specifically what I am thinking is taking a page from
> how app servers implement Connection handles in relation to data
> sources:
>
> public interface HibernateConnection extends java.sql.Connection {
>     public Connection getWrappedConnection();
> }
>
> Of course this makes it more difficult for anyone depending on casting
> to a particular driver's Connection impl at some point.  But,
> considering that this is atypical usage, my thought was to treat it as
> the more complex use-case; and since this generally requires casting
> anyway, one extra cast and "extraction" is not that big of a deal to me.
> For example, to get an oracle connection (for LOB handling for example):
> ( ( OracleConnection ) connection ).doSomethingOracleSpecific() -> ( (
> OracleConnection ) ( ( HibernateConnection ) connection
> ).getWrappedConnection() ).doSomethingOracleSpecific()
>
> Plus, would potentially allow for some other niceties like automatic
> statement logging (perhaps even with parameter replacement).
>
> Thoughts?
>
> _______________________________________________
> hibernate-dev mailing list
> hibernate-dev at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/hibernate-dev



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

Hibernate
max at hibernate.org
http://hibernate.org

JBoss a division of Red Hat
max.andersen at jboss.com



More information about the hibernate-dev mailing list