Java Jooq:是否将字符串转换为TableField对象?

Java Jooq:是否将字符串转换为TableField对象?,java,jooq,Java,Jooq,我使用JSON从数据库中获取数据,我的数据看起来像这样,我在数据库中保存了JSON对象,所以在数据库中数据是这样的 {"column":"\"someString\".\"Folder\".\"FolderCentury\"","ascending":true} 我写了下面的代码来获取数据,因为它是JSON对象 JSONObject jsonObj = geodata.getJSONObject(i); TableField<Record, T> columnNam

我使用
JSON
从数据库中获取数据,我的数据看起来像这样,我在数据库中保存了JSON对象,所以在数据库中数据是这样的

{"column":"\"someString\".\"Folder\".\"FolderCentury\"","ascending":true}
我写了下面的代码来获取数据,因为它是
JSON
对象

    JSONObject jsonObj = geodata.getJSONObject(i);
    TableField<Record, T> columnName = (TableField<Record, T>) jsonObj.get("column");
这一行返回一个类似这样的字符串

 (java.lang.String) "someString"."Folder"."FolderCentury"
但是当我在做抛出异常的时候

java.lang.ClassCastException: java.lang.String cannot be cast to org.jooq.TableField

我想知道如何将
String
更改为
TableField
对象

您可能会认为JVM将“神奇地”知道,将jOOQ
TableField
编码为JSON字符串文本意味着反向同样是自动的。显然,情况并非如此,你必须自己做一些工作

我能看到的最简单的方法是在编码和实际的
TableField
实例之间保持一个查找映射

Map<String, TableField<?>> lookup = new HashMap<>();

// SOME_STRING is the generated schema instance
for (Table<?> table : SOME_STRING.getTables()) {
    for (Field<?> field : table.fields()) {

        // Replace "toString()" by an actual SQL rendering call, if you prefer
        lookup.put(field.toString(), (TableField<?>) field);
    }
}

map它是什么意思'SOME\u STRING.getTables()'在这里你可以检查“{”列“\“someString\”\“FolderCentury\”,“升序”:true}'如果你看到“\“someString\”\“Folder\”\“FolderCentury\”这是一个“STRING”@程序员:我知道这是一个字符串。但正如我所说的,你不能只是把字符串投射到你碰巧知道的任何类型的对象上。电脑无法读懂你的心思。那么,你是如何制作这根弦的?
Map<String, TableField<?>> lookup = new HashMap<>();

// SOME_STRING is the generated schema instance
for (Table<?> table : SOME_STRING.getTables()) {
    for (Field<?> field : table.fields()) {

        // Replace "toString()" by an actual SQL rendering call, if you prefer
        lookup.put(field.toString(), (TableField<?>) field);
    }
}