問題タブ [modelmapper]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
8 に答える
86453 参照

java - Kotlin データ オブジェクトをデータ オブジェクトにマッピングするより良い方法

一部の「データ」クラス オブジェクトを同様の「データ」クラス オブジェクトに変換/マッピングしたいと考えています。たとえば、Web フォームのクラスからデータベース レコードのクラスへ。

私は Java でこのような作業に ModelMapper を使用していますが、データ クラスが final であるため使用できません (ModelMapper はマッピング定義を読み取るために CGLib プロキシを作成します)。これらのクラス/フィールドを開くときに ModelMapper を使用できますが、「データ」クラスの機能を手動で実装する必要があります。(参照。ModelMapper の例: https://github.com/jhalterman/modelmapper/blob/master/examples/src/main/java/org/modelmapper/gettingstarted/GettingStartedExample.java )

Kotlinでそのような「データ」オブジェクトをマッピングする方法は?

更新: ModelMapper は、マッピング宣言なしで、同じ名前 (tel -> tel など) を持つフィールドを自動的にマップします。Kotlinのデータクラスでやりたい。

更新: 各クラスの目的はアプリケーションの種類によって異なりますが、これらはおそらくアプリケーションの別のレイヤーに配置されます。

例えば:

  • データベース(Database Entity)からHTMLフォーム用データ(Model/View Model)へ
  • データベースのデータへの REST API の結果

これらのクラスは似ていますが、同じではありません。

これらの理由から、通常の関数呼び出しを避けたい:

  • 引数の順序によって異なります。同じ型 (文字列など) を持つ多くのフィールドを持つクラスの関数は、簡単に壊れてしまいます。
  • ほとんどのマッピングは命名規則で解決できますが、多くの宣言が必要です。

もちろん同様の機能を持ったライブラリを想定していますが、Kotlinの機能の情報も歓迎です(ECMAScriptで拡散するなど)。

0 投票する
1 に答える
6798 参照

modelmapper - Modelmapper を使用して、デフォルト/引数なしのコンストラクターを持たないクラスにマップするにはどうすればよいですか?

3 つのパラメーターを取るコンストラクターのみを持つソース宛先にマップしたいと考えています。次のエラーが表示されます。

宛先 com.novasol.bookingflow.api.entities.order.Rate のインスタンスをインスタンス化できませんでした。com.novasol.bookingflow.api.entities.order.Rate に非公開で引数のないコンストラクターがあることを確認してください。

ソース宛先に引数なしのコンストラクターを挿入すると機能しますが、それはクラスの誤用につながる可能性があるため、むしろそれを避けたいと思います。

コンバーターを使用してみましたが、うまくいかないようです:

引数なしのコンストラクターを使用して宛先にマップする方法をモデルマッパーに伝えることは可能ですか?

0 投票する
2 に答える
5116 参照

java - プロバイダーと不変オブジェクトによるディープ マッピング

私はこのようなモデルを持っています:

そしてVOは不変です:

ModelMapperプロバイダーを使用してこのシナリオを Dto から Vo に変換する簡単な方法はありますか?

PersonVo新しいオブジェクトを作成しているときに、オブジェクトを解析する方法がわからないため、1 つのプロバイダーを使用してそれを理解することはできませんCarDto...

0 投票する
3 に答える
16571 参照

spring - String から LocalDate に変換する Modelmapper

私の DTO には、文字列形式の日付フィールドがあります。私のエンティティは LocalDate として日付を持っています。現在、マップからスキップし、後で手動で明示的に設定しています(文字列から日付へ、またはその逆)。

自動的に変換することはできますか?Spring Bean 内で Converter を試しましたが、多くのコンパイル エラーが発生します (型 Converter はパラメーターをとらず、convert メソッドをオーバーライドしません。また、convert() にも多くのエラーが発生します)。

私はモデルマッパーにあまり詳しくありません。どんな助けでも大歓迎です。

提案されているように、DTO の LocalDate を試してみましたが、問題は、このエンティティを前に送信すると (REST 呼び出し)、次の JSON を取得することです。

私のフロントエンド開発者は「YYYY-MM-DD」が必要です。

0 投票する
1 に答える
1611 参照

java - キャッシュされた TypeMap を利用するために ModelMapper インスタンスを再利用する必要がありますか?

ModelMapperを使用して、オブジェクト間の簡単なマップを作成しています。

ソース コードで、 と の間にaTypeMapが存在しない場合、 inメソッドがキャッシュされることに気付きました。sourceObjdestObjTypeMapgetOrCreate

私が知る限り、このキャッシュはマッパー インスタンスに関連付けられています。つまり、新しい ModelMapper インスタンスを使用して を 2 回目sourceObjにマップする必要がある場合は、 .destObjTypeMap

sourceObjのコレクションをにマッピングしている場合、これはかなり高価な操作であると想定していdestObjます。これにより、ModelMapper インスタンスを再利用する必要があるという結論に至りました。

この結論は正しいですか?

ありがとう

0 投票する
1 に答える
94 参照

for-loop - 値を比較するために 3 つの配列リストをループする効果的な方法

arraylist の 2 つのオブジェクトとorderListproductList1 つの String arraylistがありcustomerIdListます。
POJOをProductInfoorderList と productList にマップし、cuustomerId が一致する必要があります。
特定の ProdId の注文または製品リストがない場合は、標準エラーを追加して、ProductInfo エラーにマップする必要があります。

これが私がやっていることです...

サンプル結果...

ArrayList のループとマッピング

これを行うためのより良い方法があるかどうかを知りたいです。また、 POJOModelMapperにマップSOrderするために使用しており、他の POJO が利用可能な効率的なモデルマッパーがあるかどうかを知りたいです。ありがとう。Order

0 投票する
1 に答える
125 参照

ios - Coredata の移行中に、宛先属性マッピングが xcmod​​elmappingmodel に新しく追加された属性を表示しない

Versionモデルに4つの属性があるcoredataマッピングがあります

appName、authCode、passPhrase、appVersion。

しかし、Coredata の次のバージョンでは、passPharseエンティティは削除されました。そして、マッピングpassPhraseはありませんでした。

後でバージョンモデルに別の属性を追加しました

古いパスフレーズ

しかし、エンティティ マッピングVersionToVersionでは、宛先属性のドロップダウンに表示されません。他に3つの属性があります。

oldPassPhrasexcmod​​elmappingmodel の宛先属性ドロップダウンで属性を取得するにはどうすればよいですか

0 投票する
1 に答える
6152 参照

java - Modelmapper: リストの要素を POJO のフィールドにマップする

を使用してマップしようとしましmap().setFirstElement(source.getElementList().get(0))たが、「1) ソース メソッド java.util.List.get( が無効です。メソッドのパラメーターがゼロであり、void を返さないことを確認してください。」というエラーが表示されます。

ModelMapper またはその他の代替手段を使用して、リスト内の要素を Pojo 内のフィールドにマップするにはどうすればよいですか?

0 投票する
1 に答える
2679 参照

modelmapper - ネストされたコレクションのモデルマップ

私は一連の支店を持つ Company エンティティを持っています。エンティティを DTO に変換するときに、ブランチのセットをモデルマッパーを使用するセットに変換することも必要ですBranchDTO

私のエンティティ:

CompanyDTOこのエンティティをコレクションとともに転送したいBranchDTO

私のDTO:

プロパティ マップを使用してみましたが、正確な構文がわかりませんでした。以下は空白のBranchDTOリストです。

どんな助けでも大歓迎です。