我正在使用 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()
}
只需调用
getJavaClassName(definition, Mode.POJO)
即可获取该表策略的 POJO 类名称。您可以假设它已经导入,因为它是从其他地方引用的。否则,请致电getFullJavaClassName(definition, Mode.POJO)