sql >> Base de Datos >  >> RDS >> PostgreSQL

¿Cuándo se cierra una conexión al llamar a .close() de JooQ DSLContext, si es que se cierra?

Respuesta actual

Esta pregunta quedó obsoleta con la introducción del CloseableDSLContext , cuando el AutoCloseable la semántica se eliminó nuevamente del DSLContext de uso más general . El cambio incompatible se implementó en jOOQ 3.14, para abordar la confusión expresada en esta pregunta y algunas otras, consulte:

https://github.com/jOOQ/jOOQ/issues/10512

Respuesta histórica

DSLContext se convirtió en AutoCloseable con las distribuciones Java 8 de jOOQ 3.7. El DSLContext.close() El Javadoc del método explica la semántica de este close() llamar:

Solo los recursos asignados cuando construiste el DSLContext será realizado. No los recursos que pasó al DSLContext . En su caso, no está asignando ningún recurso en este try-with-resources declaración, por lo que no hay nada que publicar al final:

try (DSLContext context = DSL.using(configuration); ...) { ... }

Esto sería diferente si asignara una nueva Connection justo ahí:

try (DSLContext context = DSL.using("jdbc:h2:~/test", "sa", ""); ...) { ... }

Con respecto a sus preguntas:

Nada. Debe controlar su ciclo de vida usted mismo, ya que jOOQ no sabe nada sobre su estrategia de ciclo de vida de conexión.

Sí.