forked from Archives/Athou_commafeed
simplify UnitOfWork code
This commit is contained in:
@@ -1,5 +1,7 @@
|
||||
package com.commafeed.backend.dao;
|
||||
|
||||
import java.util.concurrent.Callable;
|
||||
|
||||
import jakarta.inject.Singleton;
|
||||
|
||||
import io.quarkus.narayana.jta.QuarkusTransaction;
|
||||
@@ -7,25 +9,11 @@ import io.quarkus.narayana.jta.QuarkusTransaction;
|
||||
@Singleton
|
||||
public class UnitOfWork {
|
||||
|
||||
public void run(SessionRunner runner) {
|
||||
call(() -> {
|
||||
runner.runInSession();
|
||||
return null;
|
||||
});
|
||||
public void run(Runnable runnable) {
|
||||
QuarkusTransaction.joiningExisting().run(runnable);
|
||||
}
|
||||
|
||||
public <T> T call(SessionRunnerReturningValue<T> runner) {
|
||||
return QuarkusTransaction.joiningExisting().call(runner::runInSession);
|
||||
public <T> T call(Callable<T> callable) {
|
||||
return QuarkusTransaction.joiningExisting().call(callable);
|
||||
}
|
||||
|
||||
@FunctionalInterface
|
||||
public interface SessionRunner {
|
||||
void runInSession();
|
||||
}
|
||||
|
||||
@FunctionalInterface
|
||||
public interface SessionRunnerReturningValue<T> {
|
||||
T runInSession();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user