TL;DR jOOQの管理するConnectionとSpringのTransactionManagerが管理するConnectionは異なっている このため、ConnectionFactoryをDSL.usingに渡してDSLContextを得る形式では、Transactionalアノテーションが機能しない 当該コンテキストにおけるConnectionを取得し、そこに対してクエリを実行すれば、Transactionalアノテーションが機能するようになる やり方 追記: サンプルコードでのコネクションリークについて 以下に示すサンプルコードでは、トランザクション無しで実行するとコネクションリークが発生します。 原因はconnectionがcloseされないことです。 トランザクション有りの場合はTransactionManagerが適切にcloseしてくれるため、コネクションリークは発生しま