Mar*_*tör 5 generics jooq kotlin
我正在处理一种罕见的情况,我发现将 JSON 存储在 RDBMS 字段中是可以接受的。JSON 文档是一个数组或键值对象。
因此,jOOQ转换器将. 我在 Kotlin 中做这件事,这就是乐趣的开始——泛型。StringList<MyType>
转换器
@Suppress("UNCHECKED_CAST")
class MyTypeListConverter :
AbstractConverter<String, List<MyType>>(String::class.java, List::class.java as Class<List<MyType>>) {...}
Run Code Online (Sandbox Code Playgroud)
发电机配置
database {
inputSchema = "PUBLIC"
includes = ".*"
recordVersionFields = "(version|VERSION)"
customTypes {
customType {
name = "MyTypeListConverter"
type = "java.util.List<mypackage.MyType>"
converter = "mypackage.MyTypeListConverter"
}
}
forcedTypes {
forcedType {
name = "MyTypeListConverter"
expression = ".*Event\\.MYFIELD"
types = ".*"
converter = "mypackage.MyTypeListConverter"
}
}
}
Run Code Online (Sandbox Code Playgroud)
生成的jOOQ代码
public final TableField<EventRecord, List<MyType>> MYFIELD =
createField("TITLE", org.jooq.impl.SQLDataType.CLOB.nullable(false), this, "", new MyTypeListConverter());
Run Code Online (Sandbox Code Playgroud)
问题
由于类型不兼容,生成的 jOOQ 代码无法编译。List<MyType>as 声明的与从方法推断的MYFIELD不兼容。List<? extends MyType>createField()
最终,这可能更多的是关于 Java-Kotlin 泛型互操作性,而不是 jOOQ。? extends MyType错误消息中的不变量是可疑的。
| 归档时间: |
|
| 查看次数: |
605 次 |
| 最近记录: |