spring @transactional不适用于多租户

时间:2016-01-30 04:58:21

标签: spring hibernate multi-tenant

我正在使用spring 4 / hibernate 4(没有jpa)开发多租户应用程序。我所有租户的用户数据都在master数据库中。将所有表都放在单个租户数据库中。使用Spring安全性对用户进行身份验证。如果用户通过身份验证,那么我设置tenatIdentifier。

对于用户管理,每个租户管理员都需要连接到master数据库,而不管他们自己的tenantIdentifier。我正在做一些像下面这样的事情。

Hash[*string.split(/[\n=]/)]   # => {"key1"=>"value1", "key2"=>"value2"}

问题是除非我取消注释“交易”代码,否则我的用户不会持久存在。所以在我看来,春天@Transactional似乎不起作用。

另一方面,对于驻留在tenant db上的所有其他表,如果我使用sessionFactory.getCurrentSession()获取会话,则数据在租户数据库中保持良好状态。如果发生任何错误,它将正确回滚。所以Spring @Transactional注释似乎按预期工作。

我在这里做错了什么?欢迎任何帮助

0 个答案:

没有答案