Top Spring Transaction Management frequently asked interview questions.
In this post we will look at Spring Transaction Management Interview questions.
Examples are provided with explanations.
Q: What are Database Transactions ?
A:A Database transaction is a single logical unit of work which accesses and possibly modifies the contents of a database. It can be considered as a sequence of Queries that should be run in a sequence performing one logical function.

Q: What are Application Transactions ?
A:An application transaction is a sequence of application actions that are considered as a single logical unit by the application. For our application the joinOrganization method will be considered as one complete transaction. joinOrganization consists of two actions-

jsp:include page="newPagesmall.jsp" /> Q: What is Transaction Management ?
A: A transaction manager is a part of an application that controls the coordination of transactions over one or more resources. The transaction manager is responsible for creating transaction objects and managing their durability and atomicity.
Q: How to implement Transactions Management in Spring Boot ?
A: In Spring Boot Transaction Management is implemented using Transactional annotation. Transaction is a cross cutting concern and it is implemented using AOP in Spring Boot.


The component that intercepts the @Transactional annotated method like the EmployeeService. Spring Boot Transaction Management Tutorials
Q: What are the different types of Transaction Propagations?
A: The different types of Transaction Propagation for Spring Boot are as follows-
Q: How to handle Transactions for checked Exceptions ?
A: We see that the employeeService transaction is not rolled back due to an exception in employeeHealthService.

In the Database we see that the insert for employee table has not been rolledback-

But this should not be the case. To achieve roll back for checked exception we will need to specify it using Rollbackfor Annotation
Spring Boot Transactions - Understanding Transaction Rollbacks
Q: What are Transaction Isolation Levels ?
A: The Transaction Isolation Levels are as follows-
Q: What are Database Transactions ?
A:A Database transaction is a single logical unit of work which accesses and possibly modifies the contents of a database. It can be considered as a sequence of Queries that should be run in a sequence performing one logical function.
Q: What are Application Transactions ?
A:An application transaction is a sequence of application actions that are considered as a single logical unit by the application. For our application the joinOrganization method will be considered as one complete transaction. joinOrganization consists of two actions-
- Persist Employee Information
- Persist HealthInsurance Information
jsp:include page="newPagesmall.jsp" /> Q: What is Transaction Management ?
A: A transaction manager is a part of an application that controls the coordination of transactions over one or more resources. The transaction manager is responsible for creating transaction objects and managing their durability and atomicity.
Q: How to implement Transactions Management in Spring Boot ?
A: In Spring Boot Transaction Management is implemented using Transactional annotation. Transaction is a cross cutting concern and it is implemented using AOP in Spring Boot.
package com.javainuse.service.impl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import com.javainuse.model.Employee;
import com.javainuse.model.EmployeeHealthInsurance;
import com.javainuse.service.EmployeeService;
import com.javainuse.service.HealthInsuranceService;
import com.javainuse.service.OrganizationService;
@Service
public class OrganzationServiceImpl implements OrganizationService {
@Autowired
EmployeeService employeeService;
@Autowired
HealthInsuranceService healthInsuranceService;
@Override
@Transactional
public void joinOrganization(Employee employee, EmployeeHealthInsurance employeeHealthInsurance) {
employeeService.insertEmployee(employee);
if (employee.getEmpId().equals("emp1")) {
throw new RuntimeException("thowing exception to test transaction rollback");
}
healthInsuranceService.registerEmployeeHealthInsurance(employeeHealthInsurance);
}
@Override
@Transactional
public void leaveOrganization(Employee employee, EmployeeHealthInsurance employeeHealthInsurance) {
employeeService.deleteEmployeeById(employee.getEmpId());
healthInsuranceService.deleteEmployeeHealthInsuranceById(employeeHealthInsurance.getEmpId());
}
}
Spring Boot implicitly creates a proxy for the transaction
annotated methods. So for such methods the proxy acts like a wrapper which takes care of creating a transaction
at the beginning of the method call and committing the transaction after the method is executed.
The component that intercepts the @Transactional annotated method like the EmployeeService. Spring Boot Transaction Management Tutorials
Q: What are the different types of Transaction Propagations?
A: The different types of Transaction Propagation for Spring Boot are as follows-
- REQUIRED
- SUPPORTS
- NOT_SUPPORTED
- REQUIRES_NEW
- NEVER
- MANDATORY
Q: How to handle Transactions for checked Exceptions ?
A: We see that the employeeService transaction is not rolled back due to an exception in employeeHealthService.
In the Database we see that the insert for employee table has not been rolledback-
But this should not be the case. To achieve roll back for checked exception we will need to specify it using Rollbackfor Annotation
Spring Boot Transactions - Understanding Transaction Rollbacks
A: The Transaction Isolation Levels are as follows-
- READ_UNCOMMITTED
- READ_COMMITTED
- REPEATABLE_READ
- SERIALIZABLE
- DEFAULT
See Also
Top Java Data Structures and Algorithm Interview Questions Elasticsearch Tutorial- Download and install Elasticsearch. Perform basic operations with Elasticsearch. Installing the Head Plugin for Elasticsearch. Understanding Elasticsearch Cluster, Node, Index and Document using example. Elasticsearch-Main Menu.