Class DBEjb

java.lang.Object
br.com.intersys.systextil.print.DBEjb

public class DBEjb extends Object
Disponibiliza uma conexão para uso em uma transação separada.

Tenta obter um EJB específico para isso no contexto atual. Se não conseguir, Tenta obter uma nova conexão por JNDI no contexto atual. Se ainda não conseguir, lança erro.

Esta classe foi criada para isolar as classes de EJB do classloader para uso pelas classes de impressão. Agora pode ser usada por qualquer processo que precise executar algo em uma transação separada no contexto atual.

Este é um uso típico:

 String sql = "insert something...";
 DBEjb.use(c -> {
     try (PreparedStatement ps = c.prepareStatement(sql)) {
         ps.setString(1, param);
         ...
         ps.executeUpdate();
     }
 });
 
  • Constructor Details

    • DBEjb

      public DBEjb()
  • Method Details

    • use

      public static void use(DBEjb.ConnectionConsumer conn)
      Executa alguma coisa imediatamente em uma transação separada.

      Ao retornar, a transação terá sido "comitada".

      Parameters:
      conn - a função a executar
    • get

      public static <V> V get(DBEjb.ConnectionFunction<V> conn)
      Executa imediatamente uma função em uma transação separada.

      Ao retornar, a transação terá sido "comitada".

      Type Parameters:
      V - o tipo do retorno
      Parameters:
      conn - a função que vai usar a conexão
      Returns:
      o retorno da função