【问题标题】:@Transactional method with cycle and DB persist style@Transactional 方法与循环和数据库持久化风格
【发布时间】:2017-04-10 17:56:55
【问题描述】:

所以今天我们就一段代码争论了一下。 我们在 Spring 服务中有一个 @transactional 方法。我需要样式 1。 在我的实施中,我需要类似的东西:

1。 @事务 for(each):repository.persistObjectOneByOne(object)

2。 @事务 repository.persistList(list)

样式 1 是不是非常错误,或者 hibernate/spring-data 会在一个快速且良好的连接中处理它?

【问题讨论】:

    标签: java spring transactions spring-data


    【解决方案1】:

    如果您的服务方法使用 Transactional 注释(在我看来这是正确的做法),那么两种样式在提交方面是相同的,整个业务单元将被包裹在事务下,这意味着所做的任何操作都不会被提交除非交易完成。

    关于两种情况下的速度,Spring Data jpa 将在不同的查询中持久化每个对象。

    【讨论】:

    • 我今天也说过,我有 90% 的把握,但没有看 jpa 保存背后的代码。你是 99% 还是 100% 确定?
    • 这不是 save 的背后,它是事务的概念,在事务执行提交之前,更改是不可见的
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-02-28
    • 2017-10-10
    • 2020-04-12
    • 2020-06-05
    • 2016-02-17
    • 2010-12-07
    • 2017-08-09
    相关资源
    最近更新 更多