simplify UnitOfWork code

This commit is contained in:
Athou
2025-03-03 22:29:21 +01:00
parent 9d511ac7dd
commit 1aa263a6c0

View File

@@ -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();
}
}