如何投影快速变化的数据库的所有数据库列?
How can I project all database columns of a fast changing database?
我经常遇到生成的 jooq 代码与生产中的数据库不匹配的情况(列一直被添加)。
如何获取包含所有数据库列的弱类型记录?
dsl.select(asterisk())
.from(PERSON)
.where(PERSON.PERSON_NO.eq(id))
.fetch()
只有 returns 代码生成时已知的列。
只需使用普通 SQL: https://www.jooq.org/doc/3.14/manual-single-page/#query-vs-resultquery
如果这对您不起作用,解释为什么不可以帮助别人制定更合适的答案。
一个快速的破解方法是通过在您的 from 子句中使用 plain SQL templating 来确保 jOOQ 不 知道 您的表。这样,jOOQ 就无法解析星号,并会尝试从实际查询结果中发现投影。例如:
dsl.select(asterisk())
.from("{0}", PERSON)
.where(PERSON.PERSON_NO.eq(id))
.fetch();
这是一个重复出现的请求,我想我们可以把它变成一个功能:https://github.com/jOOQ/jOOQ/issues/10182
不过请注意,通常最好确保 jOOQ 知道 确切的生产模式并使生成的代码保持最新。未来的 jOOQ 将支持版本化生成的元数据,以便相同的代码可以更轻松地与不同的生产模式版本一起工作:
https://github.com/jOOQ/jOOQ/issues/4232
我经常遇到生成的 jooq 代码与生产中的数据库不匹配的情况(列一直被添加)。
如何获取包含所有数据库列的弱类型记录?
dsl.select(asterisk())
.from(PERSON)
.where(PERSON.PERSON_NO.eq(id))
.fetch()
只有 returns 代码生成时已知的列。
只需使用普通 SQL: https://www.jooq.org/doc/3.14/manual-single-page/#query-vs-resultquery
如果这对您不起作用,解释为什么不可以帮助别人制定更合适的答案。
一个快速的破解方法是通过在您的 from 子句中使用 plain SQL templating 来确保 jOOQ 不 知道 您的表。这样,jOOQ 就无法解析星号,并会尝试从实际查询结果中发现投影。例如:
dsl.select(asterisk())
.from("{0}", PERSON)
.where(PERSON.PERSON_NO.eq(id))
.fetch();
这是一个重复出现的请求,我想我们可以把它变成一个功能:https://github.com/jOOQ/jOOQ/issues/10182
不过请注意,通常最好确保 jOOQ 知道 确切的生产模式并使生成的代码保持最新。未来的 jOOQ 将支持版本化生成的元数据,以便相同的代码可以更轻松地与不同的生产模式版本一起工作: https://github.com/jOOQ/jOOQ/issues/4232