gpt4 book ai didi

hibernate - Spring 和 Hibernate 事务

转载 作者:行者123 更新时间:2023-12-02 11:27:45 26 4
gpt4 key购买 nike

我是 Spring 新手,我刚刚阅读有关 Hibernate-Spring 集成(版本 3)的文档。我不明白为什么自动事务管理(声明性事务管理)应用于文档中的“服务”,而不是直接应用于 DAO 实现。特别是我不明白他们所说的服务是什么意思,与 DAO 相比有什么区别,以及是否确实需要提供 Hibernate 与 Spring 的集成。

我尝试做的是仅使用 Hibernate DAO 实现并在 XML 中配置以在实例化时设置 session 工厂。无论如何,这会引发异常,因为 Spring 不允许非事务性 hibernate 访问。那么为了添加事务访问,我是否必须添加“服务”的东西?这与简单的 DAO 有什么不同?

最佳答案

我不能说 Spring,但我会以通用的方式回答这个问题:

In particular I don't get what do they mean by service, what's the difference compared to a DAO

想象一下经典的“汇款”场景,其中一个客户向第二个客户汇款。这里有一项“服务”(转账),分两步完成:从账户 A 扣除资金,向账户 B 充值。这两个步骤应该在一笔交易中,尽管每个步骤都进行数据库操作。如果第二步交易失败,第一步也应该被取消。

在这种情况下,服务将如下所示:

transfer(Account to, Account from, double value)

DAO 看起来像这样:

updateBalance(Account account, double amount)

transfer 方法将调用 updateBalance 两次,每个操作调用一次。

这些天我对 Spring 不太熟悉,所以,如果您的业务需求不需要的话,我不确定 Spring 是否(以及为什么)需要您的应用程序有一个额外的层。

关于hibernate - Spring 和 Hibernate 事务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4758303/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com