使LocalSessionFactoryBean在数据库连接上强制执行只读

时间:2018-03-21 23:28:13

标签: spring hibernate c3p0

使用spring / hibernate / C3P0 ComboPooledDataSource。我正在使用spring 2.5,hibernate 3.3和最新的C3P0进行遗留项目。

我正在使用LocalSessionFactoryBean实现。

我使用spring TransactionInterceptor来全局设置事务属性。

我正在添加第二个复制数据库,仅用于报告查询。这将是一个只读数据库,我想将所有连接设置为只读。

我正在尝试创建第二个LocalSessionFactoryBean实例,其中包含引用辅助数据库的数据源。
但是,我想要做的是将所有这些事务设置为只读。

我希望在ComboPooledDataSource数据源中可以有一种方法。例如,apache commons BasicDataSource具有readOnly设置。 C3P0没有。

接下来,我认为可能有一种方法可以在LocalSessionFactoryBean中执行此操作。但没有运气发现。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

创建仅具有只读访问权限的数据库帐户。这是保证用户无法写入的最佳方式。为该帐户创建第二个数据源,并拥有该数据源。

尝试使用Spring / Hibernate执行此操作并不是正确的方法。如果您使用正确的工具来完成工作,它将更加干净,易懂和易于维护。