問題タブ [mapstruct]
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 - MapStruct: Object.class から Custom.class へのマッピング
私はMapStructの初心者で、それについて助けが必要です。
属性を持つ Source クラスがあります
これは実行時に、TicketDetails という名前のカスタム オブジェクトを返します。
さて、私のターゲットクラスには、という名前の属性があります。
これは、TicketDetails オブジェクトの属性でマップする必要があります。理解を深めるために、以下に通常のJavaコードの例を書いています。
さて、私の質問は、MapStructを使用してこのケースを達成する方法ですか?
java - MapStruct: 2 つのオブジェクトを 3 つ目のオブジェクトにマッピングする
Object1 と Object2 があります。ここで、1 と 2 の属性を使用して object3 をマップします。
たとえば、私は2つのオブジェクトを持っています:
さて、これらで、それをマッピングしたいと思います
ここで、first_name と last_name は User オブジェクトから、city と state は Address オブジェクトから取得されます。
さて、私の質問は、どうやってそれを行うのですか?
しかし、現在、私はこのようにやっています
しかし、ここでは、手動で にマッピングを記述する必要がありaddressToView()
ます。
したがって、それを回避する方法はありますか?
または、そのような状況を処理するための好ましい方法は何ですか?
mapstruct - ヘルパー クラス使用時の mapstruct のあいまいな例外
mapstruct v1.0.0.FinalSourceType
を使用して、からにマップしようとしているあいまいなマッピング例外に直面していますTargetType
:
私が使用しているマッピングは次のとおりです。
これはコンパイルされず、両方のインターフェイス A のメソッドで次の例外が発生します。
プロパティ "List children" を List にマッピングするためのあいまいなマッピング メソッドが見つかりました: List noDetails(List arg0)、List withDetails(List arg0)。
これには 1 つの回避策があります。インターフェイス A の両方のメソッドをインターフェイス B に配置します。これはコンパイルされ、機能します。しかし、ビジネス上の理由から、それらを分離する必要があります。
最初のアプローチが機能せず、回避策が機能する理由を誰かが説明できますか?
おまけの質問として、マッピング用のメソッドを 1 つだけコーディングする (修飾子なし) 場合、@IterableMapping
メソッドを宣言する必要さえありません。mapstruct は「子」メソッドを見つける方法を知っています。なんで?
皆さん、ありがとうございました!
java - MapStructを使用してBeanをjava.util.Mapにマップする方法は?
MapStructを使用して、Bean クラスのフィールドを辞書のようなクラスにマップしたいと思います。私のソースクラスは標準の Bean です (簡略化された例):
次に、これらのフィールドをマップのようなコンテナーにマップします。
言い換えれば、MapStructに次のようなものを生成してもらいたいのです。
MapStruct のドキュメントで同様のものを見つけることができませんでした。target = "propertyname"
マッピング ソース (ネストされたソース、式) を取得するための柔軟性はかなりありますが、ターゲットについては、柔軟性の余地があまりない記法しかわかりません。
にマップするための最良のソリューションは何java.util.Map
ですか?
java - 自動マッピングを実行しないように MapStruct に指示できますか?
いくつかの小さなオブジェクトにマップされているかなり大きな Bean (〜 100 プロパティ) があります。小さいターゲット オブジェクトには、ソース Bean と同じ名前のプロパティがありますが、セマンティックな意味は同じではありません。
この特定のケースでは、 MapStructがアノテーションを使用して明示的に伝える内容のみをマップし@Mapping
、通常の自動マッピングを実行しないように動作させたいと思います。
MapStructのドキュメントには、次のように書かれています。
生成されたメソッドの実装では、ソース タイプ (...) から読み取り可能なすべてのプロパティが、ターゲット タイプ (...) の対応するプロパティにコピーされます。
この動作をオフにする構成オプションは見つかりませんでした。それはできますか?
java - MapStruct の使用時にプロパティをマップできません
MapStruct ライブラリを使用してオブジェクトをマップしていますが、次のエラーが発生しました:
プロパティ「java.util.Date aDate」を「javax.xml.bind.JAXBElement ADATE」にマップできません。マッピングメソッド「javax.xml.bind.JAXBElement map(java.util.Date value)」の宣言/実装を検討してください。
私の質問: このマッピング方法をどこで宣言する必要がありますか?
java - Java マッピング: Selma と MapStruct
現在、Dozer ( http://dozer.sourceforge.net/documentation/mappings.html ) に代わる 2 つの主な人気のある Java オブジェクトからオブジェクトへのマッピング フレームワークがあります。
- セルマ - http://www.selma-java.org/
- MapStruct - http://mapstruct.org/
このページ ( http://vytas.io/blog/java/java-object-to-object-mapping-which-framework-to-choose-part-2/ ) を除いて、私は見つけることができませんでしたどのフレームワークが他のフレームワークよりも優れているか、またはどのような状況で優れているかについて、多くのオンライン。誰かがこれに光を当てることができるかどうか疑問に思っています. ドキュメントに基づく機能に関しては、同じことをしているようです。
java - MapStruct - 属性のジェネリック型を指定するには?
Mapstruct は、属性のジェネリック型を見つけることができません。私がやろうとしていることを明確にするために例を挙げましょう。
次の dtos を考慮します。
次のマッパーを実装しようとしています。
しかし、これは mapstruct が生成するものの一部です:
以下のコードでわかるように、mapstruct はターゲット コレクションの型を見つけることができません。また、PersonDto のリストを Person のリストに変換しません。mapstruct が生成するものは次のとおりです。
バグかどうか教えていただけますか?修正があれば?それとも、別の方法で行う必要がありますか?ありがとう、
java - MapStruct : 実装の取得エラーは抽象的ではなく、抽象メソッドをオーバーライドしません
私は MapStruct を初めて使用し、現在 POC を行っています。MapStruct
一般的なメソッドのインターフェイスから実装クラスを生成できることがわかります
しかし、プロジェクト固有のクラスを使用すると、コンパイルエラーが発生します<InterfaceName>impl is not abstract and does not override the abstract method <customMethod>.
メソッドが 1 つだけのインターフェイスを使用しています。インターフェースにはアノテーションが付けられています@Mapper
が、メソッドはアノテーションを必要としない単純なone-to-one
マッピング@Mapping
です。
前述のように、一般的なメソッドを配置すると、すべて正常に機能しますが、プロジェクト固有のクラスでは機能しません。
誰かがこの問題について私にいくつかの指針を与えることができますか?