Jooq XMLDatabase生成代码时real_array数据类型未知问题咨询
解答
1. Real Array对应的正确数据类型
你配置的代码生成方言为POSTGRES,PostgreSQL生态中单精度浮点数组的标准类型标识是real[],你XML中填写的real_array是CrateDB自定义的类型名,jOOQ的Postgres方言无法识别。
另外你XML中bigint(20)的写法也不符合Postgres方言规范,直接改为bigint(或int8)即可,无需携带长度参数。
2. 支持的数据类型键值列表获取方式
你使用的jOOQ 3.13.5版本支持的Postgres兼容类型列表,可直接查看项目依赖的org.jooq:jooq包下的org.jooq.impl.PostgresDataType类,该类中枚举了所有当前版本可识别的类型字符串标识,你在XML的<data_type>标签中填写的值必须和类中定义的类型名完全一致才能被正常解析。
额外修复建议
你当前XML中引用的XSD版本是3.14.0,和你使用的jOOQ 3.13.5版本不匹配,可能会引发额外的解析异常,建议将XSD版本改为和jOOQ版本对齐的3.13.0,或直接删除XSD声明即可正常使用。
如果调整类型后数组类型仍无法正常识别,可在代码生成配置中添加自定义类型绑定,将real[]显式映射到jOOQ的Float[]类型即可解决未知类型报错。
内容的提问来源于stack exchange,提问作者Stefano Bossi
相关产品推荐
相关产品推荐

