The flag "...flag governing the identifier style...", if understand it,
this is about rendering query in the console log. How is shown in the
console log of IntelliJ, right? In the settings.java file I found that it
is set as:
protected RenderQuotedNames renderQuotedNames = RenderQuotedNames.
EXPLICIT_DEFAULT_QUOTED;
But what I mean is at the time of coding. The JooQ converter is so far as I
know qoutes everthing. And I have that qouted query working.
Now I'm trying to transform the same query and remove the qoutes, so that
it is easier to read and to follow. When I write this, I'm suddenly
thinking does the compiler use the 'RenderQoutedNames' flag?
I believe when I'm writing this, I slowly understand what's happening.
My function will return an Kotlin "Boolean". My query result is true or
false and I expect simply that this result is returned by the function. But
that is an misunderstood I suppose. The result of the query is a JooQ
boolean... or at least not a Kotlin Boolean? Or has this nothing todo with
ift? I have tried this:
.fetchOne()?.let { true } ?: false // this doesn't work
either
*My expection is: the query result is true or false. That result needs to
be returned by the function, to the caller function.*
* What for me hard to understand is, I have written the exact same query
without qoutes, but now the query without the qoutes, I get an error on
fetchOne?And it is the same fetchOne as the query with qoutes!*
*(BTW all the queries in this project are unqouted, I'm now a few months on
this project, somebody else has started this project 5 years ago, but has
left)*
Op maandag 2 september 2024 om 08:04:34 UTC+2 schreef [email protected]:
We have a flag governing the identifier style, if this is what's troubling
you in terms of "hard to read":
https://www.jooq.org/doc/latest/manual/sql-building/dsl-context/custom-settings/settings-name-style
Boolean.class isn't valid kotlin. Did you intend to write Boolean::class?
But with the jOOQ API, you'll have to pass Boolean::class.java (in order to
pass a java.lang.Class<?> reference)
On Sun, Sep 1, 2024 at 9:54 PM Nico van de Kamp <[email protected]> wrote:
I hava converted with the JooQ converter from SQL to JooQ. After some
struggling it is working. But I don't like it with, it hard and a lot to
read like:
table(unquotedName("tablename")).`as`(unquotedName("zz")),
and
field(name("zai2", "a_id")).eq(field(name("zai", "a_id")))
So I have rewritten this like:
override fun inconsistentCheck(zaakId: ZaakId): Boolean = usingDSL { context
->
val ZaakMainAlias = ZAAK.`as`("ZAAK_MAIN")
val AgendaMainAlias = AGENDA.`as`("AGENDA_MAIN")
val AgendaItemMainAlias = AGENDA_ITEM.`as`("AGENDA_ITEM_MAIN")
context
.select(
`when`(count().gt(0), `val`(true)).otherwise(`val`(false))
)
.from(ZaakMainAlias
,AgendaMainAlias
,AgendaItemMainAlias
)
.where(ZaakMainAlias.ID.eq(zaakId.value)
.and(AgendaMainAlias.ZAAK_ID.eq(ZaakMainAlias.ID))
.and(AgendaMainAlias.ACTUEEL.eq(inline(true)))
.and(AgendaItemMainAlias.AGENDA_ID.eq(AgendaMainAlias.ID))
).fetchOne(0, Boolean.class) == true
}
But query itself has not been changed, just removing the quoted text.
Now I get an error "None of the following functions can be called with the
arguments supplied." (see screenshot.) on
).fetchOne(0, Boolean.class) == true
Why? Ok, the query is transformed from qouted to non-qouted, but still the
same further!??
What kind of mistake do I maken or do I not understand?
If I look to the screenshot, There is now not a Boolean expected? [image:
fetchOne Boolean error.png]
--
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/74a1c2bf-f53c-4bb7-a624-fcff90103f07n%40googlegroups.com
<https://groups.google.com/d/msgid/jooq-user/74a1c2bf-f53c-4bb7-a624-fcff90103f07n%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/f00e8df3-f88d-45e5-ade5-90d0f9be168bn%40googlegroups.com.