sql >> Databáze >  >> RDS >> PostgreSQL

Kdy je spojení uzavřeno při volání .close() JooQ DSLContext, pokud vůbec?

Aktuální odpověď

Tato otázka se stala zastaralou zavedením kódu CloseableDSLContext , když je AutoCloseable sémantika byla opět odstraněna z obecnějšího DSLContext . Nekompatibilní změna byla implementována v jOOQ 3.14, aby se vyřešil zmatek vyjádřený v této otázce a několika dalších, viz:

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

Historická odpověď

DSLContext stal se Automaticky uzavíratelný s distribucemi Java 8 jOOQ 3.7. DSLContext.close() Javadoc metody vysvětluje sémantiku tohoto close() zavolejte:

Pouze zdroje alokované, když jste vytvořili DSLContext bude vydán. Ne zdroje, které jste předali DSLContext . Ve vašem případě v tomto zkuste-se-zdroji nepřidělujete žádné prostředky prohlášení, takže na jeho konci není nic k uvolnění:

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

To by bylo jiné, pokud byste přidělili nové Připojení přímo tam:

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

Pokud jde o vaše otázky:

Nic. Jeho životní cyklus musíte řídit sami, protože jOOQ neví nic o vaší strategii životního cyklu připojení.

Ano.




  1. Jak získat záznamy z posledních 24 hodin v MySQL

  2. Získejte vnořený objekt ve struktuře v gormu

  3. Jak implementovat Select For Update v EF Core

  4. SQL dotaz pro GROUP BY, vrátí skupiny, které odpovídají podmínkám LEAST, COALESCE