問題タブ [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.
java - ソースからModelMapperの同じオブジェクトにマップするにはどうすればよいですか
ModelMapper で次のことをどのように表現できますか: ターゲットのフィールドに入力するには、ソースが null でない場合はソースのプロパティ A を使用し、それ以外の場合はプロパティ B を使用します。
例 (技術的な説明が気に入らない場合は、以下のコード): ModelMapper を使用して、ソース クラスSourceBigThing
からターゲット クラスに変換したいとします。Target
にSourceBigThing
は 2 つのプロパティがあり、1 つは と呼ばれ、もう 1 つはred
と呼ばれgreen
ます。これら 2 つのプロパティは、タイプが異なりRedSmallThing
ますGreenSmallThing
。これらは両方とも と呼ばれるプロパティを持っていますname
。SourceBigThing
は赤または緑のいずれかを持つことができますが、両方を持つことはできません (もう一方は null です) 。Small Things の名前をターゲット クラスのプロパティにマップしたいと考えています。
サンプルコード:
条件をいじってみましたが、同じターゲットに対して 2 つのマッピングを行うことはできません。これは、ModelMapper がマッピングの重複に対して例外をスローするためです。
このgist で失敗した TestNG-Unit-Test を見つけることができます。
java - ModelMapper でフィールドをグローバルにスキップする
オブジェクトを逆シリアル化するときに、ModelMAPper を使用してオブジェクトを DTO から Impl にマップしています。これは、JAxRS と組み合わせて実行されます。ユーザーが POST/PUT リクエストを作成するときに、「id」をマップしたくありません。
すべてのマッピングで「id」フィールドをスキップする必要があります。すべてのクラスに必ずしも明示的なマップがあるとは限らないため、これを1つずつ実行したくありません。すべての DTO から Impls マッピングへのすべての「id」フィールドをスキップするようにマッパーを構成するにはどうすればよいですか。
ありがとうございました
java - ModelMapper: java.util.Map を POJO にマップする方法は?
java.util.Map を POJO にマップするにはどうすればよいですか?
次のテストでは、構成エラーが発生します。
同様の問題が開かれたようですが、解決されませんでしたhttps://github.com/jhalterman/modelmapper/issues/116。
テスト:
エラー:
java - 同じマッピングで Converter と PropertyMap を使用する方法は?
Converter を使用してメンバー リストのマッピングを指定しようとしていますが、PropertyMap を使用して残りのフィールドをマッピングしたいと考えています (以下の例では、'aa' にマッピングする必要があるのはフィールド 'a' だけです)。 .
すべてのマッピングを Converter または PropertyMap だけで指定することはできますか? そうでない場合、同じモデル マッパーで両方を使用するにはどうすればよいですか?
ありがとう。
PS 私はこの例http://bit.ly/10dqanwに従ってTest クラスを作成しました。
java - マネージド Bean で ModelMapper ライブラリを使用するカスタム マッピングにより、NullPointerException が発生する
NullPointerException
いくつかのコンテナー管理オブジェクトでカスタム マッパーを作成してマッピングを追加しようとすると、エラーが発生します。@Stateless EJB サービスと @RequestScoped レスト サービスで試してみました。エラーは同様で、次の行で発生します。
バグですか?マッパーがマネージド Bean で何らかのリフレクションを実行しようとしていると想定しているため、 get NullPointerException
.
これは私のコードです:
これはエラーです:
c# - Web API ViewModel から DTO から ViewModel へ
私は新しい Web API プロジェクトを開始しており、DTO / ビュー モデルの概念を理解しようとしています。DTO はデータのみを保持する必要があり、最終的に到達する前に必要なビジネス ルールを DTO で実行する必要があることを知っています。コントローラーを適切なビュー モデルに変換 (マップ) します。
ただし、私の場合、PutUser アクションは、クライアントからの Json の形式で「UpdateUserViewModel」全体を想定しています。
私のビジネスレイヤーでは、このビューモデルユーザーをuserDTOにマップし、ビジネスロジックを実行し、userDTOオブジェクトをアクションに返します。アクションはビューモデルにマップされ、応答として返されます。これは正しいアプローチですか、そうすべきですか私のマネージャーは DTO オブジェクトのみを期待しています。基本的に、ViewModel -> DTO のマッピングはどこで行われるべきですか -> ViewModel ですか?
これが正しいアプローチである場合、自動マッパーを使用せずに ViewModel エンティティを DTO にマップし、逆にマップする最良の方法は何ですか?
java - Map から List にマップする方法
2 番目のパラメーターがorMap<String, Object>
であると予想される階層からマップする必要があるプロジェクトに取り組んでいます。これまでのところ、ModelMapper はうまく機能していますが、特定の変換に問題があります。次の場合、は単なるマーカー インターフェイスです。String
Map<String, Object>
Model
Organization
私のマーカーインターフェイスを実装すると仮定しますModel
が、それ以外は任意に構造化されているため、次のものを にマップできるようにしたいと思いますClient
。
要約すると、組織のプロパティにプッシュするときに、ModelMapper にマップ キーをドロップさせ、値リストのみを使用させるにはどうすればよいでしょうか。これに失敗すると、組織のプロパティは空になります。私がこれをしたいのには十分な理由があり、悪い例があると思うかもしれません!
ご意見をお寄せいただきありがとうございます。
編集
a から aへのConverter
変換を管理するa を構築しようとしましたが、役に立ちませんでした。与えられた:Map
Collection<Model>
これには 2 つの問題があります。
- どうやら ModelMapper は継承を見ていないため、の実装が
Map
ソースとして与えられた場合、コンバーターは実行されません。たとえば、ソースとしてHashMap
a を受け入れて渡すようにコンバーターを変更すると、機能します。HashMap
context.getGenericDestinationType()
一般的な情報を持たない戻り値List
またはSet
クラス。では、ModelMapper は通常の状況で複雑なモデル グラフをどのように構築するのでしょうか?
java - ModelMapper: 暗黙的マッピングと明示的マッピングを混在させますか?
必要最小限のコードを記述するために、ModelMapper に暗黙的なマッピングを生成させ、自動マッピングできなかったプロパティの明示的なプロパティ マッピングのみを記述させようとしています。
ModelMapper に暗黙的なマッピングを生成させる場合:
setSomeId
複数の可能なマッピングがあると不平を言います。次に、次を使用してそれを修正しようとしました:
createTypeMap
ただし、例外が実際にスローされ、カスタム マッピング コードに到達する機会がないため、ModelMapper がまだ不平を言っていることがわかりました。
両方のステートメントを逆にすると、エラーが発生します。
java.lang.IllegalStateException: クラス SourceType およびクラス DestType の TypeMap は既に存在します
完全に省略した場合createTypeMap
、ModelMapper は の他のすべてのプロパティDestType
(で自動的にマッピングできたもの)のマッピングが欠落していると文句を言いcreateTypeMap
ます。
暗黙的マッピングと明示的マッピングの混合がサポートされているかどうか、およびその方法がサポートされているかどうか、ドキュメントに明示的な手がかりが見つかりませんでした。
誰でも助けることができますか?