gpt4 book ai didi

java - 为什么不用@Transactional 也能保存?

转载 作者:可可西里 更新时间:2023-11-01 08:39:00 27 4
gpt4 key购买 nike

<分区>

简化示例:

@Entity
public class Foo {

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
private String bar;

// getters + setters

}

public interface FooRepository extends CrudRepository<Foo, Integer> {
}

@Service
public class FooService {

private final FooRepository repository;

public FooService(FooRepository repository) {
this.repository = repository;
}

public Foo save(Foo foo) {
return repository.save(foo);
}

}

从 Controller 调用 fooService.save(myNewFoo) 是可行的,但我预计它会失败(如果我正确理解事务),因为没有方法用 @Transactional 注释 (实际上我希望它失败)。知道为什么会出现这种行为吗?谁在幕后创建交易,如何避免这种情况?

其他详细信息:

  • Java 9
  • MySQL 连接器 6.0.6
  • hibernate 5.2.12
  • Spring 启动 2.0.0.M7
  • Spring Data JPA 2.0.2.RELEASE

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