Spring Data Jpa / Hades事务行为
|
根据Spring Data JPA参考(以前为Hades),
存储库实例上的CRUD方法
默认情况下是事务性的。
如果一种方法涵盖多个存储库,则示例:
@Transactional
public void addRoleToAllUsers(String roleName) {
Role role = roleRepository.findByName(roleName);
for (User user : userRepository.readAll()) {
user.addRole(role);
userRepository.save(user);
}
}
参考状态
交易配置位于
仓库将被忽略,因为
外部交易配置
确定实际使用的一种。
内部事务的行为将被忽略是默认的Spring事务行为还是由Spring Data JPA明确处理?
没有找到相关结果
已邀请:
3 个回复
铰齐插
的方法标注为
并带有传播(
),这是该传播类型的正常行为(请参见10.5.7事务传播)。
抚驰
/实现类中的
将默认使这些方法简单地参与外部事务。因此,如果您认为“忽略”是一个误导性单词,请随时为其打开JIRA(我认为它在某种程度上是;))。 如果要更改CRUD方法的事务配置,只需在具体的存储库界面内重新声明CRUD方法,然后向其中添加包含所需配置的2即可。有关详细信息,请参见参考文档。
琶竞捆栓
,这意味着:如果没有事务上下文,则创建一个并在方法末尾提交;否则,将方法调用包含在现有事务上下文中。 还有其他一些:REQUIRES_NEW,SUPPORTS,NEVER等。有关详细信息,请参见http://static.springsource.org/spring/docs/3.0.x/api/org/springframework/transaction/annotation/Propagation.html。