Class TransactionUtil


  • public class TransactionUtil
    extends Object
    • Constructor Detail

      • TransactionUtil

        public TransactionUtil()
    • Method Detail

      • doInJPA

        public static <T> T doInJPA​(Supplier<EntityManagerFactory> factorySupplier,
                                    TransactionUtil.JPATransactionFunction<T> function,
                                    Map properties)
        Execute function in a JPA transaction
        Type Parameters:
        T - result type
        Parameters:
        factorySupplier - EntityManagerFactory supplier
        function - function
        properties - properties for entity manager bootstrapping
        Returns:
        result
      • doInHibernate

        public static void doInHibernate​(Supplier<SessionFactory> factorySupplier,
                                         String tenant,
                                         Consumer<Session> function)
        Execute function in a Hibernate transaction without return value and for a given tenant
        Parameters:
        factorySupplier - SessionFactory supplier
        tenant - tenant
        function - function
      • doInHibernate

        public static <R> R doInHibernate​(Supplier<SessionFactory> factorySupplier,
                                          String tenant,
                                          Function<Session,​R> function)
        Execute function in a Hibernate transaction for a given tenant and return a value
        Parameters:
        factorySupplier - SessionFactory supplier
        tenant - tenant
        function - function
        Returns:
        result
      • doInHibernateSessionBuilder

        public static <T> T doInHibernateSessionBuilder​(Supplier<SessionBuilder> sessionBuilderSupplier,
                                                        TransactionUtil.HibernateTransactionFunction<T> function)
        Execute function in a Hibernate transaction
        Type Parameters:
        T - result type
        Parameters:
        sessionBuilderSupplier - SessionFactory supplier
        function - function
        Returns:
        result
      • doInHibernateSessionBuilder

        public static void doInHibernateSessionBuilder​(Supplier<SessionBuilder> sessionBuilderSupplier,
                                                       TransactionUtil.HibernateTransactionConsumer function)
        Execute function in a Hibernate transaction without return value
        Parameters:
        sessionBuilderSupplier - SessionFactory supplier
        function - function
      • withJdbcTimeout

        public static void withJdbcTimeout​(Session session,
                                           Runnable r)
        Run the runnable with a session or statement timeout
        Parameters:
        session - Hibernate Session
      • withJdbcTimeout

        public static void withJdbcTimeout​(Session session,
                                           long millis,
                                           Runnable r)
        Run the runnable with a session or statement timeout
        Parameters:
        session - Hibernate Session
      • doInAutoCommit

        public static void doInAutoCommit​(Consumer<Statement> consumer)
        Use the default settings for building a new ServiceRegistry and create a new JDBC Connection in auto-commit mode. A new JDBC Statement is created and passed to the supplied callback.
        Parameters:
        consumer - Statement callback to execute statements in auto-commit mode
      • doInAutoCommit

        public static void doInAutoCommit​(Map<String,​Object> settings,
                                          String... statements)
        Use the supplied settings for building a new ServiceRegistry and create a new JDBC Connection in auto-commit mode. The supplied statements will be executed using the previously created connection
        Parameters:
        settings - Settings to build a new ServiceRegistry
        statements - statements to be executed in auto-commit mode
      • doInAutoCommit

        public static void doInAutoCommit​(String... statements)
        Use the default settings for building a new ServiceRegistry and create a new JDBC Connection in auto-commit mode. The supplied statements will be executed using the previously created connection
        Parameters:
        statements - statements to be executed in auto-commit mode