I have the following transaction in my service layer which will insert a batch of records into my table A after validating it.

@Transactional(readOnly =false, propagation = Propagation.REQUIRED, isolation = Isolation.DEFAULT)
public void method1(List<A> arrayList) throws Exception {

for(int i=0;i<arrayList,size();i++){
// fetch the previous values from table A using select * from A where consumer_id=arrayList.get(i).getConsumerId())
//validates the data using the previous recor
//calls DAO save for arrayList.get(i) if the record is valid;
}
}

Above method will be invoked from multiple threads.i did not user Transaction annotation in my dao or during selection of my previous record.

I have problem with fetching previous record as slows down my job.when i try to monitor using jconsole i can find all my threads in Runnable state at fetch step.

please help in resolving this issue

Thanks in Advance
Harry