So verwenden Sie Java @Transactional, um Rollback-Bedingungen anzugeben
Ausnahmeklassifizierung
Property
- Type
Description
value
String
Optionaler Qualifikationsdeskriptor, der den verwendeten Transaktionsmanager angibt
enum: Propagation | Optionale Verhaltenseinstellungen für die Transaktionsweitergabe | |
---|---|---|
Aufzählung: Isolation | Optionale Einstellungen für die Transaktionsisolationsstufe | |
boolean | Lesen/Schreiben oder schreibgeschützte Transaktionen, standardmäßiges Lesen/Schreiben | |
int (in Sekunden Granularität) | Einstellung für Transaktionszeitlimit | |
Klassenobjekt-Array, muss von Throwable geerbt werden | Ausnahmeklassen-Array, das einen Transaktions-Rollback verursacht | |
Klassennamen-Array, muss von Throwable geerbt werden | Ausnahme-Klassennamen-Array, das verursacht Transaktions-Rollback | |
Klassenobjekt-Array, muss von Throwable geerbt werden | Ausnahmeklassen-Array, das keinen Transaktions-Rollback verursacht | |
Array von Klassennamen, muss von Throwable geerbt werden | Anzahl der Ausnahmen Klassennamen, die keinen Transaktions-Rollback verursachen | |
@Transactional | Bei Verwendung der @Transaction-Annotation erinnert Sie das Alibaba-Codespezifikations-Plug-in daran, dass ein Rollback angegeben werden muss. Rollback wird standardmäßig angezeigt. | |
Laufzeitausnahmen | undungeprüfte Ausnahmen | auslöst, wenn @Transaction zum Verarbeiten von Transaktionen verwendet wird. Das heißt, wenn eine Instanz von RuntimeException oder ihrer Unterklasse ausgelöst wird, werden von der Transaktionsmethode ausgelöste geprüfte Ausnahmen nicht für ein Transaktions-Rollback markiert.
Um nicht aktivierte Ausnahmen nicht zurückzusetzen: @Transactional( dontRollbackOn =RunTimeException.class)
@Transactional(propagation=Propagation.NOT_SUPPORTED)
Hinweis
:@Transactional(rollbackOn=Exception.class)
让unchecked异常不回滚:
@Transactional(dontRollbackOn=RunTimeException.class)
不需要事务管理的(只查询的)方法:
@Transactional(propagation=Propagation.NOT_SUPPORTED)
注意:
如果异常被try-catch了,事务就不会回滚,如果想让事务回滚必须再往外抛
try{}catch{throw Exception}
Wenn die Ausnahme durch Versuchen abgefangen wird, wird die Transaktion nicht zurückgesetzt. Wenn Sie möchten, dass die Transaktion zurückgesetzt wird, müssen Sietry{}catch{throw Exception}
auslösen.Das Spring-Team empfiehlt die Verwendung der @Transactional-Annotation für bestimmte Klassen (oder Klassenmethoden) und nicht für jede Schnittstelle, die die Klasse implementieren möchte. Sie können auch die @Transactional-Annotation auf der Schnittstelle verwenden. In diesem Fall müssen Sie jedoch einen schnittstellenbasierten Proxy einrichten, um wirksam zu werden so einfach wie möglich. Insbesondere bei Transaktionsmethoden mit Sperren ist es am besten, diese nicht in Transaktionen einzufügen, wenn sie vermieden werden können. Regelmäßige Datenbankabfragevorgänge können vor der Transaktion platziert werden, und Vorgänge wie Hinzufügen, Löschen und Ändern können in der Transaktion platziert werden
-
Code
@Slf4j @Service public class MemberService { @Autowired private MemberMapper memberMapper; @Transactional public Integer insert(MemberEntity memberEntity) { Integer insertResult = 0; try { insertResult = memberMapper.save(memberEntity); log.info("insertResult:{}", insertResult); int result = 1 / memberEntity.getAge(); } catch (Exception e) { log.error("errorMsg:{}", e.getMessage()); //回滚 TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); } return insertResult; } }
Wie im roten Code oben gezeigt, wenn Sie nicht schreiben Wenn Sie dies tun, wird die Transaktion nicht rückgängig gemacht. Da die Transaktion per Catch abgefangen wird, kann die Transaktion nur manuell zurückgesetzt werden.
Das obige ist der detaillierte Inhalt vonSo verwenden Sie Java @Transactional, um Rollback-Bedingungen anzugeben. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

In dem Artikel werden Maven und Gradle für Java -Projektmanagement, Aufbau von Automatisierung und Abhängigkeitslösung erörtert, die ihre Ansätze und Optimierungsstrategien vergleichen.

In dem Artikel werden benutzerdefinierte Java -Bibliotheken (JAR -Dateien) mit ordnungsgemäßem Versioning- und Abhängigkeitsmanagement erstellt und verwendet, wobei Tools wie Maven und Gradle verwendet werden.

In dem Artikel wird in der Implementierung von mehrstufigem Caching in Java mithilfe von Koffein- und Guava-Cache zur Verbesserung der Anwendungsleistung erläutert. Es deckt die Einrichtungs-, Integrations- und Leistungsvorteile sowie die Bestrafung des Konfigurations- und Räumungsrichtlinienmanagements ab

In dem Artikel werden mit JPA für Objektrelationszuordnungen mit erweiterten Funktionen wie Caching und faulen Laden erläutert. Es deckt Setup, Entity -Mapping und Best Practices zur Optimierung der Leistung ab und hebt potenzielle Fallstricke hervor. [159 Charaktere]

Mit der Klassenbelastung von Java wird das Laden, Verknüpfen und Initialisieren von Klassen mithilfe eines hierarchischen Systems mit Bootstrap-, Erweiterungs- und Anwendungsklassenloadern umfasst. Das übergeordnete Delegationsmodell stellt sicher


Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

mPDF
mPDF ist eine PHP-Bibliothek, die PDF-Dateien aus UTF-8-codiertem HTML generieren kann. Der ursprüngliche Autor, Ian Back, hat mPDF geschrieben, um PDF-Dateien „on the fly“ von seiner Website auszugeben und verschiedene Sprachen zu verarbeiten. Es ist langsamer und erzeugt bei der Verwendung von Unicode-Schriftarten größere Dateien als Originalskripte wie HTML2FPDF, unterstützt aber CSS-Stile usw. und verfügt über viele Verbesserungen. Unterstützt fast alle Sprachen, einschließlich RTL (Arabisch und Hebräisch) und CJK (Chinesisch, Japanisch und Koreanisch). Unterstützt verschachtelte Elemente auf Blockebene (wie P, DIV),

SAP NetWeaver Server-Adapter für Eclipse
Integrieren Sie Eclipse mit dem SAP NetWeaver-Anwendungsserver.

WebStorm-Mac-Version
Nützliche JavaScript-Entwicklungstools

MinGW – Minimalistisches GNU für Windows
Dieses Projekt wird derzeit auf osdn.net/projects/mingw migriert. Sie können uns dort weiterhin folgen. MinGW: Eine native Windows-Portierung der GNU Compiler Collection (GCC), frei verteilbare Importbibliotheken und Header-Dateien zum Erstellen nativer Windows-Anwendungen, einschließlich Erweiterungen der MSVC-Laufzeit zur Unterstützung der C99-Funktionalität. Die gesamte MinGW-Software kann auf 64-Bit-Windows-Plattformen ausgeführt werden.

VSCode Windows 64-Bit-Download
Ein kostenloser und leistungsstarker IDE-Editor von Microsoft