将 Hibernate 3 升级到 Hibernate 4 后,我被迫从基于 spring 的应用程序中删除 HibernateTemplate。为了使 Hibernate 会话可用,我必须使用比以前更一致的事务标记。这需要我向我的服务层添加事务建议,并密切关注执行只读数据库操作的后台线程。
我有两个数据源(我必须使用两个不同的数据库),第一个用于几乎每个应用程序请求,第二个仅用于特殊(例如 1000 个)请求。最简单的事情是使用方面将两种请求类型包装在两个数据库的事务中(我不必确定哪些请求需要哪些数据库),但我想知道其中涉及的开销。实际的数据库连接获取和事务逻辑(如提交等)是否推迟到执行实际查询?还是我的方法会导致很多(实际上未使用的)事务被启动和提交?
澄清一下,我有两个数据源、两个事务管理器、两个(相同的)“inServiceLayer”切入点的两个事务建议。
谢谢你的帮助!