我想听听您对Spring声明式事务管理的专业意见。这是我的设置:
- DAO层是使用Spring JdbcTemplate的普通旧JDBC(没有Hibernate等)
- 服务层是一个POJO,具有如下的声明性事务 -
save*,readonly=false,rollback for Throwable
在上述设置下工作得很好。然而,当我说get*,readonly=true
时,我在日志文件中看到错误,说数据库连接无法标记为只读
。这发生在服务层的所有get*方法中。
现在我的问题是:
A. 我必须把get*
设置为只读吗?我所有的get*
方法都是纯读取数据库操作。我不希望在任何事务上下文中运行它们。上述错误有多严重?
B. 当我删除get*
配置时,我就不会看到错误了。此外,我所有简单的get*
操作都是在没有事务的情况下执行的。这是正确的方式吗?
C. 为什么有人要有readonly=true
的事务方法?这种配置有什么实际意义吗?
谢谢!一如既往,非常感谢您的回复!
org.hibernate.LazyInitializationException
异常。 - Dave