PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Quando uma conexão é fechada ao chamar o .close() do JooQ DSLContext, se for o caso?

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.