从dataSource

时间:2017-05-18 12:06:02

标签: java spring hibernate database-connection hibernate-entitymanager

我的Web应用程序在Tomcat 7.0上运行,使用Spring 3.2,Hibernate 4.3和Oracle数据库。

entityManagerFactory配置为org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean,transactionManager为org.springframework.orm.jpa.JpaTransactionManager。 dataSource定义为org.springframework.jndi.JndiObjectFactoryBean,内部引用类型为org.apache.tomcat.jdbc.pool.DataSourceFactory的连接池。

每当entityManager从池中获取连接时,我都希望在该连接中执行自定义sql语句。它只会更改Oracle会话上下文中的属性,如下所示:

dbms_session.set_context(context, propName, propValue);

所以没有完成dml。

每次将连接释放回池时,都应执行类似的语句来清除属性值。

属性值应该从spring-security上下文中动态获取,因此我无法将其硬编码为connection test statement

我也查看了Hibernate interceptors,但我发现无法在拦截器内执行同一会话中的任何sql。

有什么想法吗?

0 个答案:

没有答案