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