Heim > Java > javaLernprogramm > So lösen Sie das Problem der Transaktionsetikettenüberprüfung im Springboot-Projekt

So lösen Sie das Problem der Transaktionsetikettenüberprüfung im Springboot-Projekt

WBOY
Freigeben: 2023-05-10 23:28:12
nach vorne
969 Leute haben es durchsucht

1. Problembeschreibung

Die Konfiguration von Transaktionen im Springboot-Projekt wurde bereits im letzten internen Projekt verwendet, da es im Code anderer Leute verwendet wurde (damals gab es ein Framework). Garantie, das war mir egal) Wird im neuen Startprojekt erneut verwendet. Nach der Überprüfung reicht es aus, zwei Tags unter dem Springboot-Projekt zu konfigurieren.

2. Lösung

2.1 Beschreibung

(1) Es gibt tatsächlich zwei Tags, eines wird in der Startup-Klasse verwendet (@EnableTransactionManagement) und das andere wird dort konfiguriert, wo es benötigt wird

(2) Plan , Ich habe gerade ein früheres Testprojekt gefunden: Speichern Sie ein Datenelement in der Datenbank und teilen Sie 1 durch 0 und sehen Sie dann, was der Unterschied mit oder ohne Transaktionsbezeichnung ist

2.2 Codebeschreibung

(1) Controller-Klasse

@ResponseBody
    @GetMapping("/tstest")
    public String tstest() {
        this.userService.tstest();
        return "SUCCESS";
    }
Nach dem Login kopieren

(2) Service-Klasse

public void tstest() {
        //保存
        UserEntity userEntity = new UserEntity();
        userEntity.setType(0);
        userEntity.setOpenid("1111");
        insert(userEntity);
	
				//报错,回滚
        int i = 1/0;
        System.out.println(i);
    }
Nach dem Login kopieren

2.3 Überprüfung 1, es gibt keine Transaktion

Keine Transaktionsbezeichnung, der Code ist wie oben.

(1) Löschen Sie zuerst die Datenbank.

(2) Führen Sie die Testanforderung aus.

So lösen Sie das Problem der Transaktionsetikettenüberprüfung im Springboot-Projekt

Es wird festgestellt, dass die Daten nach der Ausführung der Einfügecodezeile in der Datenbank gespeichert werden.

So lösen Sie das Problem der Transaktionsetikettenüberprüfung im Springboot-Projekt

Dann ist die Ausführung abgeschlossen (1/0). Obwohl der Fehlercode einen Fehler meldet, sind die Daten in der Datenbank noch vorhanden. Die Daten werden nicht zurückgesetzt und die Konsistenz bleibt nicht erhalten.

So lösen Sie das Problem der Transaktionsetikettenüberprüfung im Springboot-Projekt

2.4 Überprüfung 2, es liegt eine Transaktion vor

(1) Fügen Sie zwei Beschriftungen hinzu, eine für die Startup-Klassenmethode und die andere für die Testmethode. (2) Löschen Sie zuerst die Daten und führen Sie sie aus, um sie einzufügen Nach der Ausführung meldet der Code dann einen Fehler, die Daten werden zurückgesetzt und die Daten werden nicht in der Datenbank gespeichert, was darauf hinweist, dass die Transaktion ihre beabsichtigte Rolle gespielt hat und die Daten zurückgesetzt wurden.

So lösen Sie das Problem der Transaktionsetikettenüberprüfung im Springboot-Projekt

Das obige ist der detaillierte Inhalt vonSo lösen Sie das Problem der Transaktionsetikettenüberprüfung im Springboot-Projekt. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:yisu.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage