package io.ebeaninternal.server.transaction;
import io.ebeaninternal.api.SpiTransaction;
import java.sql.Connection;
import java.util.concurrent.atomic.AtomicLong;
Transaction manager used for doc store only EbeanServer instance.
There is no underlying JDBC DataSource etc
/**
* Transaction manager used for doc store only EbeanServer instance.
* <p>
* There is no underlying JDBC DataSource etc
*/
public class DocStoreTransactionManager extends TransactionManager {
private final AtomicLong counter = new AtomicLong(1000L);
Create the TransactionManager
/**
* Create the TransactionManager
*/
public DocStoreTransactionManager(TransactionManagerOptions options) {
super(options);
}
@Override
public SpiTransaction createTransaction(boolean explicit, int isolationLevel) {
long id = counter.incrementAndGet();
return createTransaction(explicit, null, id);
}
@Override
public SpiTransaction createQueryTransaction(Object tenantId) {
return new DocStoreOnlyTransaction("", false, this);
}
@Override
protected SpiTransaction createTransaction(boolean explicit, Connection c, long id) {
return new DocStoreOnlyTransaction(prefix + id, explicit, this);
}
}