แก้ไข: เหตุผลนี้เป็นแคชระดับที่ 1 ตามที่อธิบายไว้ ที่นี่ วิธีแก้ไขคือการล้างข้อมูลด้วยตนเองหลังจากบันทึก
ฉันมีรหัสจาวาต่อไปนี้:
Player updatedPlayer = playerRepository.save(player);
CompletableFuture.runAsync(() -> {
List<Player> players = playerRepository.findAllByToolId(updatedPlayer.getToolId());
// Do something with players that takes some time
});
ฉันคาดหวังว่าผู้เล่นจะถูกแทรกลงในฐานข้อมูลผ่านทาง playerRepository หลังจากนั้นบรรทัดถัดไปที่มีฟังก์ชันอะซิงโครนัสแบบไม่ระบุชื่อจะถูกดำเนินการเท่านั้น ดังนั้นผู้เล่นที่แทรกไว้ควรรวมอยู่ในรายชื่อผู้เล่นเสมอ
แต่ดูเหมือนว่าจะเป็นกรณีที่บางครั้งผู้เล่นไม่อยู่ในรายชื่อและบางครั้งเขาก็อยู่ด้วย ใครช่วยอธิบายได้ไหมว่าทำไมถึงเป็นเช่นนั้น? หรือฉันกำลังทำอะไรผิด? ขอบคุณ!