PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Quand une connexion est-elle fermée lors de l'appel de .close() de JooQ DSLContext, le cas échéant ?

Réponse actuelle

Cette question est devenue obsolète avec l'introduction du CloseableDSLContext , lorsque le AutoCloseable la sémantique a de nouveau été supprimée du DSLContext plus général . Le changement incompatible a été implémenté dans jOOQ 3.14, afin de résoudre la confusion exprimée dans cette question et quelques autres, voir :

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

Réponse historique

DSLContext est devenu AutoCloseable avec les distributions Java 8 de jOOQ 3.7. Le DSLContext.close() Javadoc de la méthode explique la sémantique de ce close() appeler :

Seules les ressources allouées lors de la construction du DSLContext sortira. Pas les ressources que vous avez transmises au DSLContext . Dans votre cas, vous n'allouez aucune ressource dans ce try-with-resources déclaration, il n'y a donc rien à publier à la fin :

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

Ce serait différent si vous allouiez une nouvelle Connection juste là :

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

Concernant vos questions :

Rien. Vous devez gérer vous-même son cycle de vie car jOOQ ne sait rien de votre stratégie de cycle de vie de connexion.

Oui.