Aktualna odpowiedź
To pytanie stało się nieaktualne po wprowadzeniu kodu <>CloseableDSLContext
, gdy AutoCloseable
semantyka została ponownie usunięta z bardziej ogólnego zastosowania DSLContext
. Niezgodna zmiana została zaimplementowana w jOOQ 3.14, aby rozwiązać zamieszanie wyrażone w tym pytaniu i kilku innych, patrz:
https://github.com/jOOQ/jOOQ/issues/10512
Historyczna odpowiedź
DSLContext
stał się AutoCloseable
z dystrybucjami Java 8 jOOQ 3.7. DSLContext.close()
Javadoc metody wyjaśnia semantykę tego close()
zadzwoń:
Tylko zasoby przydzielone podczas tworzenia DSLContext
zostanie opublikowane. Nie zasoby, które przekazałeś do DSLContext
. W twoim przypadku nie przydzielasz żadnych zasobów w tym try-with-resources
oświadczenie, więc na końcu nie ma nic do wydania:
try (DSLContext context = DSL.using(configuration); ...) { ... }
Byłoby inaczej, gdybyś przydzielił nowe Połączenie
właśnie tam:
try (DSLContext context = DSL.using("jdbc:h2:~/test", "sa", ""); ...) { ... }
Jeśli chodzi o Twoje pytania:
Nic. Musisz samodzielnie zarządzać jego cyklem życia, ponieważ jOOQ nie wie nic o Twojej strategii cyklu życia połączenia.
Tak.