Jawaban saat ini
Pertanyaan ini menjadi usang dengan diperkenalkannya CloseableDSLContext
, ketika AutoCloseable
semantik telah dihapus lagi dari DSLContext
untuk tujuan yang lebih umum . Perubahan yang tidak kompatibel diterapkan di jOOQ 3.14, untuk mengatasi kebingungan yang diungkapkan dalam pertanyaan ini dan beberapa pertanyaan lainnya, lihat:
https://github.com/jOOQ/jOOQ/issues/10512
Jawaban bersejarah
DSLContext
menjadi AutoCloseable
dengan distribusi Java 8 dari jOOQ 3.7. DSLContext.close()
metode Javadoc menjelaskan semantik close()
. ini hubungi:
Hanya sumber daya yang dialokasikan saat Anda membuat DSLContext
Akan dirilis. Bukan sumber daya yang Anda berikan ke DSLContext
. Dalam kasus Anda, Anda tidak mengalokasikan sumber daya apa pun dalam try-with-resources
pernyataan, jadi tidak ada yang harus dirilis di akhir:
try (DSLContext context = DSL.using(configuration); ...) { ... }
Ini akan berbeda jika Anda mengalokasikan Connection
baru di sana:
try (DSLContext context = DSL.using("jdbc:h2:~/test", "sa", ""); ...) { ... }
Mengenai pertanyaan Anda:
Tidak ada apa-apa. Anda harus mengatur sendiri siklus hidupnya karena jOOQ tidak tahu apa-apa tentang strategi siklus hidup koneksi Anda.
Ya.