我对使用hibernate的spring应用程序中的StatelessSession
和ScrollableResults
表示担忧。
我有许多DAO主要使用自动连接的公共会话对象,但出于一个目的,我需要遍历整个表。
我发现为此,使用ScrollableResults
迭代对象和StatelessSession
不存储附加在内存中的任何结果是有效的。
但是,我需要在DAO之外执行此迭代,因为来自DB的信息用于访问外部API。因此,我创建了从DAO外部创建和关闭StatelessSession
的方法。
我想知道,在这种情况下我应该如何管理交易?似乎根本不需要任何事务操作(数据只被重新编译),但在代码审查时,我被告知可以自动创建事务,并且Spring Hibernate事务管理器永远不会关闭事务。那么它应该是手动覆盖还是无用的预防措施?