fix(firstleg): avoid shared lock upgrades when initializing customs

This commit is contained in:
2026-10-05 17:03:01 +08:00
parent 261c720c77
commit 4bde1a8352
3 changed files with 13 additions and 4 deletions
@@ -11,6 +11,13 @@ import java.util.List;
import static org.assertj.core.api.Assertions.assertThat;
class ContainerCustomsMapperContractTest {
@Test void duplicateInitializationTakesUpdateLockWithoutChangingExistingFacts() throws Exception {
String sql = String.join(" ", ContainerCustomsMapper.class.getMethod("insertContainer",
long.class,long.class,long.class,String.class).getAnnotation(org.apache.ibatis.annotations.Insert.class).value());
assertThat(sql).contains("ON DUPLICATE KEY UPDATE id=id").doesNotContain("INSERT IGNORE");
assertThat(sql.substring(sql.indexOf("ON DUPLICATE KEY UPDATE"))).isEqualTo("ON DUPLICATE KEY UPDATE id=id\n");
}
@Test void initializationFlushesSessionCacheBeforeCurrentAggregateRead() {
var configuration = new org.apache.ibatis.session.Configuration();
configuration.addMapper(ContainerCustomsMapper.class);