Adds a JUnit test suite (GetVsGetReferenceTest, MergeRefreshTest, OptimisticLockTest, IdentityBatchTest, SequenceBatchTest, AllocationSizeSweepTest, BatchSizeSweepTest) so every surprising behavior described in the three companion posts has a reproducible test, alongside the original CommandLineRunner scenarios. Rewrites all three doc chapters and the README around the new experiments: the get()/getReference() same-session matrix, the merge()/refresh() experiments (including exactly when OptimisticLockException surfaces and a corrected LAZY-plus- cascade merge() result), and two new sweeps (allocationSize, batch_size) for batch inserts.
19 lines
685 B
Bash
Executable File
19 lines
685 B
Bash
Executable File
#!/usr/bin/env bash
|
|
# Run one scenario in the foreground and exit.
|
|
#
|
|
# ./scripts/run.sh getvsload
|
|
# ./scripts/run.sh mergerefresh
|
|
# ./scripts/run.sh insert-identity
|
|
# ./scripts/run.sh insert-sequence
|
|
#
|
|
# Every scenario here is a CommandLineRunner against an in-memory H2 database with
|
|
# spring.main.web-application-type=none, so there is no server to keep alive and nothing to
|
|
# kill afterwards -- the process runs the scenario and exits on its own.
|
|
set -eu
|
|
|
|
PROFILE="${1:?usage: run.sh <getvsload|mergerefresh|insert-identity|insert-sequence>}"
|
|
|
|
cd "$(dirname "$0")/.."
|
|
mvn -q -B org.springframework.boot:spring-boot-maven-plugin:run \
|
|
-Dspring-boot.run.profiles="$PROFILE"
|