JOOQ如何根据其他列值转换JSON?

JOOQ如何根据其他列值转换JSON?,第1张

JOOQ如何根据其他列值转换JSON?

您显然不能以类型安全的方式执行此 *** 作,因为您的

preferences
列的类型将是
Field<RegularCustomerPreferences |PremiumCustomerPreferences>
(联合类型),并且Java当前不支持联合类型。因此,也许可以将通用的
CustomerPreferences
超类型绑定到该列,然后在使用该值的任何地方向下转换该值。

绑定超级类型应该相对容易。您将实现一个

Binding<Object,CustomerPreferences>
可同时处理
RegularCustomerPreferences
PremiumCustomerPreferences
值的。具体来说,您的转换器看起来像这样:

public Converter<Object, CustomerPreferences> converter() {    return new Converter<Object, CustomerPreferences>() {        @Override        public CustomerPreferences from(Object t) { if (some check here to see if this is a regular customer)     return new RegularCustomerPreferences(t); else     return new PremiumCustomerPreferences(t);        }        @Override        public Object to(CustomerPreferences u) { return MyJSONTools.toJSON(u);        }        @Override        public Class<Object> fromType() { return Object.class;        }        @Override        public Class<CustomerPreferences> toType() { return CustomerPreferences.class;        }    };}

这里的假设是,您的JSON内容允许您决定JSON文档应具有的类型,并与

type
列重复,因为当前,从版本3.11和3.12开始,jOOQ不支持读取多个字段的多列数据类型绑定值作为其数据类型转换决策的基础。这是与以下相关的待定功能:https
:
//github.com/jOOQ/jOOQ/issues/6124



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5165535.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-18
下一篇 2022-11-18

发表评论

登录后才能评论

评论列表(0条)

保存