Skip to main content

10. Database Transactions

General usage: 10. Database Transactions. Status links explain differences for each data source.

Data sourceAnnotationsTemplatesProgrammaticShared transactionsPropagationIsolation
MySQL✓ Supported✓ Supported✓ Supported✓ Supported✓ All✓ Supported
PostgreSQL✓ Supported✓ Supported✓ Supported✓ Supported✓ All✓ Supported
Oracle✓ Supported✓ Supported✓ Supported✓ Supported✓ All✓ Supported
SQL Server✓ Supported✓ Supported✓ Supported✓ Supported✓ All✓ Supported
DB2✓ Supported✓ Supported✓ Supported✓ Supported✓ All✓ Supported
H2✓ Supported✓ Supported✓ Supported✓ Supported✓ All✓ Supported
ClickHouse◐ Limited◐ Limited◐ Limited◐ Limited◐ Limited✕ Unsupported
Redis◐ Limited◐ Limited◐ Limited◐ Limited◐ Limited✕ Unsupported
MongoDB◐ Limited◐ Limited◐ Limited◐ Limited◐ Limited✕ Unsupported
ES 6◐ Limited◐ Limited◐ Limited◐ Limited◐ Limited✕ Unsupported
ES 7◐ Limited◐ Limited◐ Limited◐ Limited◐ Limited✕ Unsupported
Milvus◐ Limited◐ Limited◐ Limited◐ Limited◐ Limited✕ Unsupported
  • Shared transactions: JdbcTemplate, Session, and the Builder API participate in the same transaction.
  • Propagation: seven modes — REQUIRED, REQUIRES_NEW, NESTED, SUPPORTS, NOT_SUPPORTED, MANDATORY, and NEVER.
  • Propagation counts: a mode counts as fully supported only when all its scenarios pass. Hover for each mode's status; follow the status link for partial-support limits.
  • Limited: some calls work, but JDBC or database transaction capabilities impose restrictions. Follow the data source link for supported behavior and limits.
  • Isolation levels: whether dbVisitor can apply transaction isolation settings for the data source, not whether every database accepts the same values. Follow the status link for accepted values and behavior.