问题描述
StatelessSession 接口 是否可以转化成为 Session 接口,怎么转换?或者用一个自定义的DataSource 替换 SessionFactory的 数据源,是否可行? 问题补充:环境上没有Spring的支持,现在我在考虑使用JNDI做数据源来绕过这个问题。现在的想法是代理一个DataSource,代理的DataSource通过读取一个环境变量来动态的切换供给的实际DataSource以达到多数据源支持的目的。这样应用程序在使用一个DataSource接口的情况下通过改变环境参数就可以获取到不同数据库的数据源。改变环境参数这块考虑用Guice 拦截器 配合 自定义注解 实现。但是由于Session接口是具备一二级缓存功能,现在担心的是这样做。Session可能会因为切换数据源的操作导致Session接口功能彻底瘫痪。 StatelessSession 倒是没什么因为它只是一个贴近JDBC的Hibernate Session接口。不知道这样可以不?
解决方案
StatelessSession 接口 不能可以转化成为 Session 接口,虽然两者都继承自SharedSessionContract,但两者各自又添加了不同的方法,用一个自定义的DataSource 替换 SessionFactory的 数据源,理论上完全没问题,如果使用的有spring的话,管理起来更方便些。
时间: 2024-11-16 13:37:47