1- CountDownLatch
3- Phaser

1-CountDownLatch- it was added to the Java 5 concurrency package.

It allows one or more threads to wait until a set of operations being performed in other threads are completed

C:\Users\sanjsingh>javap java.util.concurrent.CountDownLatch
public class java.util.concurrent.CountDownLatch {
public java.util.concurrent.CountDownLatch(int);
public void await() throws java.lang.InterruptedException;
public boolean await(long, java.util.concurrent.TimeUnit) throws java.lang.InterruptedException;
public void countDown();

Transaction simply represents a unit of work ,In such case, if one step fails, the whole transaction fails.

Hibernate Transaction Management

Transaction simply represents a unit of work ,In such case, if one step fails, the whole transaction fails.

Transaction is a Interface in Hibernate

  • The methods of Transaction interface are as follows:
    * void begin() starts a new transaction.
    * void commit() ends the unit of work unless we are in FlushMode.NEVER.
    * void rollback() forces this transaction to rollback.
    * boolean wasCommited() checks if the transaction is commited successfully.
    * boolean wasRolledBack() checks if the transaction is rolledback successfully.

A transaction is associated with Session and instantiated by calling session.beginTransaction().

Example of Transaction Management in Hibernate

Session session = null;
Transaction tx = null;
try {
session = sessionFactory.openSession();
tx = session.beginTransaction();
(Bussiness Logic)
}catch (Exception ex) {
finally {session.close();}

Transaction associated with Dao layer

Step 1 — Run your Spring boot application
Step 2 -http://localhost:9001/h2-console/
port no- Application port no (9001)
Step 3- JDBC URL ,username and password application.yml or properties file

H2 Console on browser
H2 console
port: 9001
name: product-services
driver-class-name: org.h2.Driver
password: password
url: "jdbc:h2:file:~/products;AUTO_SERVER=true"
username: root
enabled: true
databae-platform: org.hibernate.dialect.H2DDialect
ddl-auto: update


Static convenience methods for JavaBeans: for instantiating beans, checking bean property types, copying bean properties, etc.

Case 1- when you need to copy field value from one object to another object

public ProductAggregate(CreateProductCommand createProductCommand) {

ProductCreatedEvent productCreatedEvent = new ProductCreatedEvent();

// CreateProductCommand object value copy in ProductCreatedEvent
Copy the property values of the given source bean into the target bean.

Using BufferedReader object to read the input text file.\

Step 1 : Create BufferedReader object to read the input text file.
BufferedReader reader = new BufferedReader(new FileReader(“Pass The File Location Here”));
Step 2 : Create one ArrayList object which will hold all the lines or records of input text file.
ArrayList<String> lines =…

/*find all the permutations of a string*/
public class PrintAllPermutations {
public static void permutation(String name, String blank) {
if (name.length() == 0) {
for (int i = 0; i < name.length(); i++) {
String newBlank = blank + name.charAt(i);
String newRemaining =.name.substring(0, i) + name.substring(i + 1);

Sanjay Singh

Java||Spring-Boot|| Micro services Application developer|| angular || INDIA

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store