Resposta atual
Essa pergunta ficou desatualizada com a introdução do
CloseableDSLContext
, quando o AutoCloseable
a semântica foi removida novamente do DSLContext
de uso mais geral . A mudança incompatível foi implementada no jOOQ 3.14, para resolver a confusão expressa nesta questão e em algumas outras, veja:https://github.com/jOOQ/jOOQ/issues/10512
Resposta histórica
Contexto DSL
tornou-se AutoCloseable
com as distribuições Java 8 do jOOQ 3.7. O DSLContext.close()
o Javadoc do método explica a semântica deste close()
ligar:Apenas recursos alocados quando você construiu o
DSLContext
será lançado. Não são recursos que você passou para o DSLContext
. No seu caso, você não está alocando nenhum recurso neste try-with-resources
declaração, então não há nada a ser divulgado no final dela:try (DSLContext context = DSL.using(configuration); ...) { ... }
Isso seria diferente se você alocasse uma nova
Conexão
ali:try (DSLContext context = DSL.using("jdbc:h2:~/test", "sa", ""); ...) { ... }
Em relação às suas perguntas:
Nada. Você mesmo deve controlar seu ciclo de vida, pois o jOOQ não sabe nada sobre sua estratégia de ciclo de vida de conexão.
Sim.