在 JAVA 中访问 Kotlin Jooq 生成的源代码
Access Kotlin Jooq generated sources in JAVA
我正在使用 Jooq 3.14.7 版本生成 Kotlin 源代码。
我的代码库同时包含 Java 和 Kotlin class,我们正在过渡到 Kotlin。
我可以访问 Kotlin class 中的 Jooq 源,如下所示 (FetchBooks.kt)
import project.mobile.generated.databaseBook.tables.references.I_BOOKS;
....
.select(I_BOOKS.BOOK_NAME)
但是在Java classes我必须像下面这样(FetchBooks.java)
import static project.mobile.generated.databaseBook.tables.references.TablesKt.getI_BOOKS;
....
.select(getI_BOOKS().getBOOK_NAME())
这在 Java 中似乎是一种相当混乱的方式。
有什么建议吗?
您可以修补代码生成器以生成一些注释,例如为您的各种属性生成 @JvmField
。目前没有这种注释的钩子,所以这不是开箱即用的。需要打补丁(或复制粘贴 JavaGenerator::generateTable
的实现并仅打补丁)。
但是,我建议使用 JavaGenerator
生成你的 jOOQ 代码,直到你的代码库完全迁移到 kotlin。
我正在使用 Jooq 3.14.7 版本生成 Kotlin 源代码。 我的代码库同时包含 Java 和 Kotlin class,我们正在过渡到 Kotlin。
我可以访问 Kotlin class 中的 Jooq 源,如下所示 (FetchBooks.kt)
import project.mobile.generated.databaseBook.tables.references.I_BOOKS;
....
.select(I_BOOKS.BOOK_NAME)
但是在Java classes我必须像下面这样(FetchBooks.java)
import static project.mobile.generated.databaseBook.tables.references.TablesKt.getI_BOOKS;
....
.select(getI_BOOKS().getBOOK_NAME())
这在 Java 中似乎是一种相当混乱的方式。 有什么建议吗?
您可以修补代码生成器以生成一些注释,例如为您的各种属性生成 @JvmField
。目前没有这种注释的钩子,所以这不是开箱即用的。需要打补丁(或复制粘贴 JavaGenerator::generateTable
的实现并仅打补丁)。
但是,我建议使用 JavaGenerator
生成你的 jOOQ 代码,直到你的代码库完全迁移到 kotlin。