På saveAndFlush opdateres ændringerne i denne kommando straks til databasen. Med save er dette ikke nødvendigvis sandt og kan kun forblive i hukommelsen, indtil en flush- eller commit-kommando udstedes.
Bemærk dog, at selv hvis du opdaterer ændringerne i en transaktion og ikke committer dem, er ændringerne stadig ikke synlige for den eksterne transaktion, før de er udført i denne transaktion.
I dit tilfælde kan det være, du bruger en form for transaktionsmekanisme, der giver dig en commit-kommando, hvis alt er i orden.
Brug JPA saveAndFlush()-metoden
Implementér, Forøg og Modificerer
Bemærk: Kontrollaget skal filtrere parametrene,
saveAndFlush Denne metode afgør først, om persist-metoden eller merge-metoden skal bruges baseret på ID==null Den vil beslutte, om der skal bruges indsæt eller opdateres baseret på, om ID'et er registreret i databasen
Vi ser på forskellen ved at dekompilere Java-kildekoden
IDEA_ genvej til at finde implementeringen af grænsefladen
IDEA-stil ctrl + alt +B
Eclipse-stil ctrl +T
Gem interface:
Implementeringsmetode:
saveAndFlush-grænseflade:
Implementeringsmetode:
Som du kan se fra kildekoden, kalder du saveAndFlush-metoden,saveAndFlush kalder vores save-metode og derefter flush-metoden。
(Slut)
|