Jooq - 如何获取实体类名称以使用 DefaultGeneratorStrategy 覆盖扩展泛型类

问题描述 投票:0回答:1

我正在使用 Jooq 生成器,对于每个 DAO,我希望有一个简单的通用接口,每个 DAO 都可以扩展该接口以实现基本的 CRUD 功能。

类似于

CrudDao<ItrNeGroup>
,其中
ItrNeGroup
是表的 POJO 名称(它扩展了
NamedEntity

如何根据传递给

getJavaClassImplements
方法的定义确定 POJO 的类名,以及如何创建可以理解的类型引用?

我当前的方法是(第二个 if 语句是相关的):

override fun getJavaClassImplements(definition: Definition, mode: GeneratorStrategy.Mode): List<String> {
        LOGGER.info("Class Implements: Generator mode is $mode for ${definition.qualifiedName}")
        if (mode == GeneratorStrategy.Mode.POJO && definition.name?.startsWith("itr_ne_") == true) {
            return listOf(NamedEntity::class.java.name)
        }
        if(mode == GeneratorStrategy.Mode.POJO && definition.name?.startsWith("itr_ne_") == true) {
            val tr = object: TypeReference<CrudDao<WHAT_IS_THE_POJO_CLASS>>
            return listOf(tr)
        }
        return emptyList()
    }
kotlin jooq jooq-codegen
1个回答
0
投票

只需调用

getJavaClassName(definition, Mode.POJO)
即可获取该表策略的 POJO 类名称。您可以假设它已经导入,因为它是从其他地方引用的。否则,请致电
getFullJavaClassName(definition, Mode.POJO)

© www.soinside.com 2019 - 2024. All rights reserved.