我在一个小型个人项目中使用 Hibernate 和 Spring。好吧,还是这个领域的新手,所以想提出一些关于交易的基本问题。
看来我必须声明事务管理器并将 DAO 类注释为 @Transactional(propagation = Propagation.REQUIRED, readOnly = false)。否则我会得到一些奇怪的异常,或者实体没有保存在数据库中。实际上是否必须使用事务?我不能在不使用它们的情况下将数据保存在数据库中(我认为 MySQL ISAM 表不支持事务),那么您将如何使用它们呢?
放置@Transactional 属性的最佳位置是什么?目前它在我的通用 HibernateDAO 超类中声明,可能是它可以达到的最深层次。我想那不是最好的地方。但是如果将它向上移动,我最终会将它放在 Spring MVC 控制器中,这可以说也是不合适的地方。到目前为止,还没有其他服务层,因为除了保存和提供数据库中的单词和定义之外,我什么都不做。
非常感谢