Hi Kunt,
I am using JOOQ 3.11.8.
*DAO Method:*
public List<DeckWithoutCard> getDecksWithoutCardByIds(List<UUID> deckIds){
UUID[] ids = deckIds.stream().toArray(UUID[]::new);
LatestDeckVersion latestDeckVersion = Routines.latestDeckVersion(ids);
SelectWhereStep<LatestDeckVersionRecord> latestDeckVersionRecords =
dsl.selectFrom(latestDeckVersion);
ResultSet rs = latestDeckVersionRecords.fetchResultSet();
return transformToDeckWithoutCardList(rs);
}
LatestDeckVersion is basically a function written in psql.
create or replace function public.latest_deck_version(deck_id_array uuid[])
returns table(
id uuid,
deleted boolean,
foreign_id text,
deck_type deck_type,
title text,
confidential boolean,
certified boolean,
deck_id uuid,
original_created timestamp without time zone,
original_updated timestamp without time zone,
created timestamp with time zone, updated
timestamp with time zone,
num_cards bigint,
num_images bigint,
edition text)
language sql
as $function$
with
cte0 as (
select
t.idx,
t.id
from unnest($1) with ordinality as t(id, idx)),
cte1 as (
select
lower(sys_period) as t,
false as deleted,
d.id,
foreign_id,
title,
deck_type,
confidential,
certified,
deck_id,
original_created,
original_updated,
coalesce((select min(lower(sys_period)) from core.deck_version
where id = d.id), lower(sys_period)) as created,
lower(sys_period) as updated,
(select count (1) from core.card_deck where deck_id = d.id) as
num_cards,
(select image_count from deck_image_count where deck_id = d.id)
as num_images,
(select edition from deck_edition where deck_id = d.id)
from core.deck d
join cte0 on cte0.id::uuid = d.id
union all
select
lower(sys_period) as t,
true as deleted,
d.id,
foreign_id,
title,
deck_type,
confidential,
certified,
deck_id,
original_created,
original_updated,
(select min(lower(sys_period)) from core.deck_version where id
= d.id) as created,
(select max(upper(sys_period)) from core.deck_version where id
= d.id) as updated,
(select count (1) as count from core.card_deck where deck_id =
d.id) num_cards,
(select image_count from deck_image_count where deck_id = d.id)
num_images,
(select edition from deck_edition where deck_id = d.id)
from core.deck_version d
join cte0 on cte0.id::uuid = d.id),
cte2 as (
select *
from cte1
order by id, t desc),
cte3 as (
select distinct on (id)
cte2.id,
deleted,
foreign_id,
deck_type,
title,
confidential,
certified,
deck_id,
original_created,
original_updated,
created,
updated,
num_cards,
num_images,
edition
from cte2)
select
cte3.id,
deleted,
foreign_id,
deck_type,
title,
confidential,
certified,
deck_id,
original_created,
original_updated,
created,
updated,
num_cards,
num_images,
edition
from cte3
join cte0 on cte0.id::uuid = cte3.id
order by idx asc;
$function$;
*Test Method :*
import com.chegg.deck.service.model.DeckWithoutCard;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.mockito.InjectMocks;
import org.mockito.MockitoAnnotations;
import java.io.IOException;
import java.net.URISyntaxException;
import java.util.Arrays;
import java.util.List;
import java.util.UUID;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNotNull;
public class DeckWithoutCardsByIdsTest extends JooqBaseTest {
@InjectMocks
private DeckRepository deckRepository;
@Override
public String getResourcePath(){
return "/db/get_deck_history.txt";
}
@BeforeEach
public void init() throws IOException, URISyntaxException {
MockitoAnnotations.initMocks(this);
super.init();
deckRepository.setDsl(dslContext);
}
@Test
public void testGetDecksWithoutCardByIds(){
List<UUID> deckIds =
Arrays.asList(UUID.fromString("efb2d576-f2d3-4a8e-9715-dc95fdd14701"),
UUID.fromString("816d681e-18ca-4b61-938c-401b22c714f5"));
List<DeckWithoutCard> decksWithoutCardByIds =
deckRepository.getDecksWithoutCardByIds(deckIds);
assertNotNull(decksWithoutCardByIds);
assertEquals(2, decksWithoutCardByIds.size());
}
}
Thanks,
Deba
On Friday, August 23, 2019 at 2:31:02 AM UTC-7, Knut Wannheden wrote:
>
> Hi Deba,
>
> I tested your query using jOOQ 3.11.11 and could not find any problem. Can
> you show your actual test code? Even better would be a MCVE (see
> https://github.com/jOOQ/jOOQ-mcve).
>
> Regards,
> Knut
>
> On Fri, Aug 23, 2019 at 6:02 AM Debapriya Patra <[email protected]
> <javascript:>> wrote:
>
>> Hi,
>>
>> Is there a way to spit more details about the cause of the error while
>> running unit test cases for the DAO classes ?
>>
>> I have the select query and data in a file and when i am running the Mock
>> unit test case, its breaking with the below exception.
>>
>> 20:54:30.301 [Test worker] DEBUG org.jooq.tools.jdbc.MockFileDatabase -
>> Loaded SQL : select "latest_deck_version"."id",
>> "latest_deck_version"."deleted", "latest_deck_version"."foreign_id",
>> "latest_deck_version"."deck_type", "latest_deck_version"."title",
>> "latest_deck_version"."confidential", "latest_deck_version"."certified",
>> "latest_deck_version"."deck_id", "latest_deck_version"."original_created",
>> "latest_deck_version"."original_updated", "latest_deck_version"."created",
>> "latest_deck_version"."updated", "latest_deck_version"."num_cards",
>> "latest_deck_version"."num_images", "latest_deck_version"."edition" from
>> "public"."latest_deck_version"(cast('{"efb2d576-f2d3-4a8e-9715-dc95fdd14701","816d681e-18ca-4b61-938c-401b22c714f5"}'
>>
>> as uuid[]))
>> 20:54:30.418 [Test worker] DEBUG org.jooq.tools.jdbc.MockFileDatabase -
>> Loaded Result :
>> +------------------------------------+-------+----------+---------+---------+------------+---------+------------------------------------+-------------------+-------------------+-------------------+-------------------+---------+----------+--------------------------------+
>> 20:54:30.419 [Test worker] DEBUG org.jooq.tools.jdbc.MockFileDatabase -
>> : |id
>> |deleted|foreign_id|deck_type|title |confidential|certified|deck_id
>> |original_created |original_updated |created
>> |updated |num_cards|num_images|edition
>> |
>> 20:54:30.419 [Test worker] DEBUG org.jooq.tools.jdbc.MockFileDatabase -
>> :
>> +------------------------------------+-------+----------+---------+---------+------------+---------+------------------------------------+-------------------+-------------------+-------------------+-------------------+---------+----------+--------------------------------+
>> 20:54:30.419 [Test worker] DEBUG org.jooq.tools.jdbc.MockFileDatabase -
>> : |efb2d576-f2d3-4a8e-9715-dc95fdd14701|false
>> |null |FINAL |titleTest|false |true
>> |efb1d576-f2d3-4a8e-9715-dc95fdd14701|2018-10-19 17:44:50|2018-10-19
>> 17:44:50|2018-10-19 17:44:50|2018-10-19 17:44:50|4 |0
>> |012a631c94215f2ad86cb66d0e7d3043|
>> 20:54:30.419 [Test worker] DEBUG org.jooq.tools.jdbc.MockFileDatabase -
>> : |816d681e-18ca-4b61-938c-401b22c714f5|true
>> |null |FINAL |titleDemo|true |true
>> |efb6d576-f2d3-4a8e-9715-dc95fdd14701|2018-10-19 17:44:50|2018-10-19
>> 17:44:50|2018-10-19 17:44:50|2018-10-19 17:44:50|7 |0
>> |03a3724203d4f758dc0a567cb58dab17|
>> 20:54:30.419 [Test worker] DEBUG org.jooq.tools.jdbc.MockFileDatabase -
>> :
>> +------------------------------------+-------+----------+---------+---------+------------+---------+------------------------------------+-------------------+-------------------+-------------------+-------------------+---------+----------+--------------------------------+
>> 20:54:30.633 [Test worker] INFO org.jooq.Constants -
>>
>> @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
>> @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
>> @@@@@@@@@@@@@@@@ @@ @@@@@@@@@@
>> @@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@
>> @@@@@@@@@@@@@@@@ @@ @@ @@@@@@@@@@
>> @@@@@@@@@@ @@@@ @@ @@ @@@@@@@@@@
>> @@@@@@@@@@ @@ @@@@@@@@@@
>> @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
>> @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
>> @@@@@@@@@@ @@ @@@@@@@@@@
>> @@@@@@@@@@ @@ @@ @@@@ @@@@@@@@@@
>> @@@@@@@@@@ @@ @@ @@@@ @@@@@@@@@@
>> @@@@@@@@@@ @@ @ @ @@@@@@@@@@
>> @@@@@@@@@@ @@ @@@@@@@@@@
>> @@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@
>> @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
>> @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ Thank you for using jOOQ 3.11.8
>>
>> 20:54:30.656 [Test worker] DEBUG org.jooq.tools.LoggerListener -
>> Executing query : select "latest_deck_version"."id",
>> "latest_deck_version"."deleted", "latest_deck_version"."foreign_id",
>> "latest_deck_version"."deck_type", "latest_deck_version"."title",
>> "latest_deck_version"."confidential", "latest_deck_version"."certified",
>> "latest_deck_version"."deck_id", "latest_deck_version"."original_created",
>> "latest_deck_version"."original_updated", "latest_deck_version"."created",
>> "latest_deck_version"."updated", "latest_deck_version"."num_cards",
>> "latest_deck_version"."num_images", "latest_deck_version"."edition" from
>> "public"."latest_deck_version"(?::uuid[])
>> 20:54:30.663 [Test worker] DEBUG org.jooq.tools.LoggerListener - -> with
>> bind values : select "latest_deck_version"."id",
>> "latest_deck_version"."deleted", "latest_deck_version"."foreign_id",
>> "latest_deck_version"."deck_type", "latest_deck_version"."title",
>> "latest_deck_version"."confidential", "latest_deck_version"."certified",
>> "latest_deck_version"."deck_id", "latest_deck_version"."original_created",
>> "latest_deck_version"."original_updated", "latest_deck_version"."created",
>> "latest_deck_version"."updated", "latest_deck_version"."num_cards",
>> "latest_deck_version"."num_images", "latest_deck_version"."edition" from
>> "public"."latest_deck_version"(cast('{"efb2d576-f2d3-4a8e-9715-dc95fdd14701","816d681e-18ca-4b61-938c-401b22c714f5"}'
>>
>> as uuid[]))
>> 20:54:30.697 [Test worker] DEBUG org.jooq.tools.LoggerListener -
>> Exception
>> org.jooq.exception.DataAccessException: SQL [select
>> "latest_deck_version"."id", "latest_deck_version"."deleted",
>> "latest_deck_version"."foreign_id", "latest_deck_version"."deck_type",
>> "latest_deck_version"."title", "latest_deck_version"."confidential",
>> "latest_deck_version"."certified", "latest_deck_version"."deck_id",
>> "latest_deck_version"."original_created",
>> "latest_deck_version"."original_updated", "latest_deck_version"."created",
>> "latest_deck_version"."updated", "latest_deck_version"."num_cards",
>> "latest_deck_version"."num_images", "latest_deck_version"."edition" from
>> "public"."latest_deck_version"(?::uuid[])]; Invalid SQL: select
>> "latest_deck_version"."id", "latest_deck_version"."deleted",
>> "latest_deck_version"."foreign_id", "latest_deck_version"."deck_type",
>> "latest_deck_version"."title", "latest_deck_version"."confidential",
>> "latest_deck_version"."certified", "latest_deck_version"."deck_id",
>> "latest_deck_version"."original_created",
>> "latest_deck_version"."original_updated", "latest_deck_version"."created",
>> "latest_deck_version"."updated", "latest_deck_version"."num_cards",
>> "latest_deck_version"."num_images", "latest_deck_version"."edition" from
>> "public"."latest_deck_version"(?::uuid[])
>> at org.jooq_3.11.8.POSTGRES_10.debug(Unknown Source)
>> at org.jooq.impl.Tools.translate(Tools.java:2384)
>> at
>> org.jooq.impl.DefaultExecuteContext.sqlException(DefaultExecuteContext.java:822)
>> at org.jooq.impl.AbstractQuery.execute(AbstractQuery.java:364)
>> at
>> org.jooq.impl.AbstractResultQuery.fetchLazy(AbstractResultQuery.java:393)
>> at
>> org.jooq.impl.AbstractResultQuery.fetchLazy(AbstractResultQuery.java:380)
>> at
>> org.jooq.impl.AbstractResultQuery.fetchResultSet(AbstractResultQuery.java:329)
>> at org.jooq.impl.SelectImpl.fetchResultSet(SelectImpl.java:2705)
>> at
>> com.chegg.deck.service.dao.DeckRepository.getDecksWithoutCardByIds(DeckRepository.java:103)
>> at
>> com.chegg.deck.service.dao.DeckWithoutCardsByIdsTest.testGetDecksWithoutCardByIds(DeckWithoutCardsByIdsTest.java:38)
>> at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native
>> Method)
>> at
>> java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
>> at
>> java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>> at java.base/java.lang.reflect.Method.invoke(Method.java:564)
>> at
>> org.junit.platform.commons.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:515)
>> at
>> org.junit.jupiter.engine.execution.ExecutableInvoker.invoke(ExecutableInvoker.java:115)
>> at
>> org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$invokeTestMethod$6(TestMethodTestDescriptor.java:170)
>> at
>> org.junit.jupiter.engine.execution.ThrowableCollector.execute(ThrowableCollector.java:40)
>> at
>> org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.invokeTestMethod(TestMethodTestDescriptor.java:166)
>> at
>> org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:113)
>> at
>> org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:58)
>> at
>> org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$5(NodeTestTask.java:105)
>> at
>> org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:72)
>> at
>> org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:95)
>> at
>> org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:71)
>> at java.base/java.util.ArrayList.forEach(ArrayList.java:1378)
>> at
>> org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:38)
>> at
>> org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$5(NodeTestTask.java:110)
>> at
>> org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:72)
>> at
>> org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:95)
>> at
>> org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:71)
>> at java.base/java.util.ArrayList.forEach(ArrayList.java:1378)
>> at
>> org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:38)
>> at
>> org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$5(NodeTestTask.java:110)
>> at
>> org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:72)
>> at
>> org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:95)
>> at
>> org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:71)
>> at
>> org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.submit(SameThreadHierarchicalTestExecutorService.java:32)
>> at
>> org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:57)
>> at
>> org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine.execute(HierarchicalTestEngine.java:51)
>> at
>> org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:170)
>> at
>> org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:154)
>> at
>> org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:90)
>> at
>> org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor$CollectAllTestClassesExecutor.processAllTestClasses(JUnitPlatformTestClassProcessor.java:92)
>> at
>> org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor$CollectAllTestClassesExecutor.access$100(JUnitPlatformTestClassProcessor.java:77)
>> at
>> org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor.stop(JUnitPlatformTestClassProcessor.java:73)
>> at
>> org.gradle.api.internal.tasks.testing.SuiteTestClassProcessor.stop(SuiteTestClassProcessor.java:61)
>> at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native
>> Method)
>> at
>> java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
>> at
>> java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>> at java.base/java.lang.reflect.Method.invoke(Method.java:564)
>> at
>> org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:35)
>> at
>> org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24)
>> at
>> org.gradle.internal.dispatch.ContextClassLoaderDispatch.dispatch(ContextClassLoaderDispatch.java:32)
>> at
>> org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:93)
>> at com.sun.proxy.$Proxy2.stop(Unknown Source)
>> at
>> org.gradle.api.internal.tasks.testing.worker.TestWorker.stop(TestWorker.java:131)
>> at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native
>> Method)
>> at
>> java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
>> at
>> java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>> at java.base/java.lang.reflect.Method.invoke(Method.java:564)
>> at
>> org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:35)
>> at
>> org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24)
>> at
>> org.gradle.internal.remote.internal.hub.MessageHubBackedObjectConnection$DispatchWrapper.dispatch(MessageHubBackedObjectConnection.java:155)
>> at
>> org.gradle.internal.remote.internal.hub.MessageHubBackedObjectConnection$DispatchWrapper.dispatch(MessageHubBackedObjectConnection.java:137)
>> at
>> org.gradle.internal.remote.internal.hub.MessageHub$Handler.run(MessageHub.java:404)
>> at
>> org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:63)
>> at
>> org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:46)
>> at
>> java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1135)
>> at
>> java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
>> at
>> org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:55)
>> at java.base/java.lang.Thread.run(Thread.java:844)
>> Caused by: java.sql.SQLException: Invalid SQL: select
>> "latest_deck_version"."id", "latest_deck_version"."deleted",
>> "latest_deck_version"."foreign_id", "latest_deck_version"."deck_type",
>> "latest_deck_version"."title", "latest_deck_version"."confidential",
>> "latest_deck_version"."certified", "latest_deck_version"."deck_id",
>> "latest_deck_version"."original_created",
>> "latest_deck_version"."original_updated", "latest_deck_version"."created",
>> "latest_deck_version"."updated", "latest_deck_version"."num_cards",
>> "latest_deck_version"."num_images", "latest_deck_version"."edition" from
>> "public"."latest_deck_version"(?::uuid[])
>> at org.jooq.tools.jdbc.MockFileDatabase.execute(MockFileDatabase.java:364)
>> at org.jooq.tools.jdbc.MockStatement.execute0(MockStatement.java:187)
>> at org.jooq.tools.jdbc.MockStatement.execute(MockStatement.java:250)
>> at org.jooq.tools.jdbc.MockStatement.execute(MockStatement.java:245)
>> at
>> org.jooq.tools.jdbc.DefaultPreparedStatement.execute(DefaultPreparedStatement.java:209)
>> at
>> org.jooq.impl.Tools.executeStatementAndGetFirstResultSet(Tools.java:3494)
>> at org.jooq.impl.AbstractResultQuery.execute(AbstractResultQuery.java:268)
>> at org.jooq.impl.AbstractQuery.execute(AbstractQuery.java:350)
>> ... 68 common frames omitted
>>
>> I am not able to figure out what really the cause of this error.
>>
>> Basically in my experience, any error it just throw java.sql.SQLException:
>> Invalid SQL.
>>
>> I am not able to figure out what really the cause of this error. Can
>> someone help me understand what could be the issue or is there a way i can
>> get more info from JOOQ about the error ?
>>
>> I am attaching my Mock data file which i am using to test my DAO method.
>>
>> Thanks,
>> Deba
>>
>>
>>
>> --
>> You received this message because you are subscribed to the Google Groups
>> "jOOQ User Group" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to [email protected] <javascript:>.
>> To view this discussion on the web visit
>> https://groups.google.com/d/msgid/jooq-user/097bb76b-098e-411e-b639-1d6b455fe223%40googlegroups.com
>>
>> <https://groups.google.com/d/msgid/jooq-user/097bb76b-098e-411e-b639-1d6b455fe223%40googlegroups.com?utm_medium=email&utm_source=footer>
>> .
>>
>
--
You received this message because you are subscribed to the Google Groups "jOOQ
User Group" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/jooq-user/d0006fac-506f-475d-95ff-d14c893dd0cd%40googlegroups.com.