Heim  >  Artikel  >  Java  >  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
WBOYnach vorne
2023-05-10 23:28:12900Durchsuche

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";
    }

(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);
    }

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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:yisu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen