fix(lastleg): read committed order command replays after lock waits

This commit is contained in:
2026-10-03 12:13:34 +08:00
parent 34cac9c42a
commit eadb431f33
6 changed files with 100 additions and 8 deletions
@@ -66,6 +66,18 @@ class LastlegOrderCommandServiceTest {
ReflectionTestUtils.setField(service, "objectMapper", JsonMapper.builder().findAndAddModules().build());
}
@Test
void commandTransactionsReadCommittedAfterWaitingForTheOrderLock() throws Exception {
for (var entry : List.of(
new Object[]{"hold", LastlegOrderCommandDtos.HoldRequest.class},
new Object[]{"saveManualNodes", LastlegOrderCommandDtos.ManualNodesRequest.class})) {
var method=LastlegOrderCommandService.class.getMethod((String)entry[0],String.class,long.class,
String.class,(Class<?>)entry[1],String.class,String.class);
assertEquals(org.springframework.transaction.annotation.Isolation.READ_COMMITTED,
method.getAnnotation(org.springframework.transaction.annotation.Transactional.class).isolation());
}
}
@Test
void holdsOnlySelectedOrderWithVersionAndImmutableHistory() {
LastlegOrder order = order(11L, 3);