如何在不将db字段数据添加到我的grails域类的情况下获取db字段数据泛型类型?

如何在不将db字段数据添加到我的grails域类的情况下获取db字段数据泛型类型?,grails,gorm,Grails,Gorm,我正在使用一个grails项目,该项目使用一个大型第三方数据库,每个数据库中有许多表和许多字段。我们采取了根据需要手动将这些字段添加到域类的方法 我希望系统地访问所有字段,我想知道是否有一种方法可以做到这一点,而无需将它们添加到我的域类中。例如,如果我知道列名,我想知道数据库中的数据类型(即,它是否是字符串、double、int、bool、date) 我不需要对字段进行编程访问,因为我可以使用第三方供应商提供的RESTAPI与这些表进行交互。我只是想知道我是否能确定他们期望的数据类型 我发现gr

我正在使用一个grails项目,该项目使用一个大型第三方数据库,每个数据库中有许多表和许多字段。我们采取了根据需要手动将这些字段添加到域类的方法

我希望系统地访问所有字段,我想知道是否有一种方法可以做到这一点,而无需将它们添加到我的域类中。例如,如果我知道列名,我想知道数据库中的数据类型(即,它是否是字符串、double、int、bool、date)

我不需要对字段进行编程访问,因为我可以使用第三方供应商提供的RESTAPI与这些表进行交互。我只是想知道我是否能确定他们期望的数据类型

我发现grails有一个反向工程插件,但我不确定这是否是我想要的,因为我不想创建一个域类,我只想要如下内容:

// this is what I work for fields I've added to the domain class
Type works = MyDomainClass.getDeclaredField("declaredFieldName").genericType
// is there a way to do this without adding it to the domain class?
Type needed = someAPI(MyDomainClass,"unDeclaredFieldName")
查看反向工程插件正在使用的。具体来说,它创建了一个
数据库收集器

DatabaseCollector readDatabaseSchema(String catalog, String schema) {
    catalog = catalog ?: settings.defaultCatalogName
    schema = schema ?: settings.defaultSchemaName

    JDBCReader reader = JDBCReaderFactory.newJDBCReader(cfg.properties, settings,revengStrategy, cfg.serviceRegistry)
    DatabaseCollector dbs = new MappingsDatabaseCollector(mappings, reader.metaDataDialect)
    reader.readDatabaseSchema dbs, catalog, schema, new ReverseEngineerProgressListener()
    dbs
}

例如,我认为您可以直接使用SQL

SELECT DATA_TYPE FROM all_tab_columns WHERE table_name = 'TABLE NAME' AND column_name = 'COLUMN NAME'

您可以直接从Groovy SQL调用SQL

,当然这是可能的,但这在RDBM系统之间是不可移植的