0
私は、このようなマップ何かフェッチすることができます知っている:fetchMap()をRecordMapperでどのように使用できますか?
this.ctx.select(
shopSubscription.field(SHOP_SUBSCRIPTION.SHOP_ID),
shopSubscription.field(SHOP_SUBSCRIPTION.PAYMENT_GATEWAY_SUBSCRIPTION_ID),
shopSubscription.field(SHOP_SUBSCRIPTION.ADMIN_TOOL_FEATURE_TYPE_ID),
PAYMENT_GATEWAY_SUBSCRIPTION.SUBSCRIPTION_ID_TOKEN
)
.from(PAYMENT_GATEWAY_SUBSCRIPTION)
.join(shopSubscription)
.on(PAYMENT_GATEWAY_SUBSCRIPTION.ID.eq(shopSubscription.field(SHOP_SUBSCRIPTION.PAYMENT_GATEWAY_SUBSCRIPTION_ID))
.and(PAYMENT_GATEWAY_SUBSCRIPTION.PAYMENT_GATEWAY_TYPE_ID.eq(paymentGatewayType)))
.fetchMap(PAYMENT_GATEWAY_SUBSCRIPTION.PAYMENT_GATEWAY_TYPE_ID, ShopSubscriptionDTO.class);
を私はさらにこのクエリにRecordMapper
を追加することができれば、私は好むコンパイル時に問題を検出します。
fetchMap()
を呼び出す方法はありますが、RecordMapper
も提供していますか?私はこのようになりますと思って何
:あまりにfetchMap(Field<K>, RecordMapper<? super R, R>)
があることを私は見ていなかったfetchMap()
の異なる実装のかなり多くがある
this.ctx.select(
shopSubscription.field(SHOP_SUBSCRIPTION.SHOP_ID),
shopSubscription.field(SHOP_SUBSCRIPTION.PAYMENT_GATEWAY_SUBSCRIPTION_ID),
shopSubscription.field(SHOP_SUBSCRIPTION.ADMIN_TOOL_FEATURE_TYPE_ID),
PAYMENT_GATEWAY_SUBSCRIPTION.SUBSCRIPTION_ID_TOKEN
)
.from(PAYMENT_GATEWAY_SUBSCRIPTION)
.join(shopSubscription)
.on(PAYMENT_GATEWAY_SUBSCRIPTION.ID.eq(shopSubscription.field(SHOP_SUBSCRIPTION.PAYMENT_GATEWAY_SUBSCRIPTION_ID))
.and(PAYMENT_GATEWAY_SUBSCRIPTION.PAYMENT_GATEWAY_TYPE_ID.eq(paymentGatewayType)))
// For each record apply the map() function
.map(new RecordMapper<Record<?>, ShopSubscriptionDTO>() {
@Override
public ShopSubscriptionDTO map(Record<?> record) {
ShopSubscriptionDTO shopSubscriptionDto = new ShopSubscriptionDTO();
shopSubscriptionDto.setShopId(record.getValue(SHOP_SUBSCRIPTION.SHOP_ID)
// ...
return shopSubscriptionDto;
}
});
// Fetch the result into a map where the key is SHOP_SUBSCRIPTION.ADMIN_TOOL_FEATURE_TYPE_ID
.fetchMap(SHOP_SUBSCRIPTION.ADMIN_TOOL_FEATURE_TYPE_ID);
'RecordMapper'引数を受け入れる' fetchMap() 'オーバーロードがあります。 ['fetchMap(RecordMapper、RecordMapper)'](http://www.jooq.org/javadoc/latest/org/jooq/ResultQuery.html#fetchMap-org.jooq.RecordMapper-org.jooq.RecordMapper-)、しかしそれがあなたが探しているものかどうかはわかりません。あなたは彼らと何をしたいですか? –
@ LukasEder私が探しているのは、結果の 'HashMap'のすべての値に対して' RecordMapper'を実装して、選択したデータをビジネスオブジェクトに変換する方法です。 – displayname
申し訳ありませんが、私はまだそれがどういう意味かはっきりしていません。予想されるコード/タイプなどで質問を更新できますか? –