問題タブ [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.

0 投票する
0 に答える
1489 参照

java - STS の Spring Boot は、生成されたコード クラスを使用していません

新しいスプリング ブート プロジェクト (個人用) で mapstruct によって生成されたクラスを使用しようとしていますが、ビルド スクリプトには別のものが必要なようです。

クラスが正しく生成されているため、それら(ビルドフォルダー内のJavaおよびクラスファイル)が表示され、アプリケーションがjarファイルから実行されると、実際に機能します。

問題は、Eclipse STS から実行すると、Spring が生成されたクラスを見つけることができないと表示され、@Component を使用して作成され、ComponentScanPath にあることを確認しました。

build.gradle

また、プロジェクトのbinフォルダー内に生成されていないようです

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

java - mapstruct 用に作成された抽象クラス内の自動配線

Spring を使用して REST コントローラーを構築しようとしています。読みやすさと統合性を高めるためにデータをフォーマットするために、Mapstruct を使用しました。これがMapperの書き方です。

APIコントローラー関数は次のようになります

出力 deviceData は、1 つの詳細を除いて正常に返されます。この関数にアクセスできませんでしたdeviceService.findDeviceTemplateById(toDevice.getDeviceTemplateId()(deviceService は自動配線されています)。エラー スタック トレースに NullPointerException が表示されます。抽象クラスの自動配線されたリソースのアクセシビリティに関する一般的なルールがあるかどうか疑問に思っていますか? または、この関数にアクセスできないようにするインスタンス化の方法はありますか? 機能させるには何を変更すればよいですか?私も同じ結果で@Injectfromを試しました。javax.inject

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

java - ソースとターゲットは同じインターフェース MapStruct を共有します

こんにちはMapStructを使用して次の問題があります。次のインターフェイスがあります。

私は両方の2つの実装を持っています:

UserUserDtoRole、およびRoleDto

UserMapper という名前のマッパーを作成しました。

問題は、User を UserDto に変換しようとすると、ロール オブジェクトが変換されず、次のメイン メソッドを実行していることです。

結果は次のとおりです。

アレックス クラス com.raidentrance.model.Role

そして私は期待した

アレックス クラス com.raidentrance.model.RoleDto

これが私の質問の詳細ですソースとターゲットは同じインターフェース MapStruct を共有します

これが私のコードです。ジャクソンに@JsonDeserialize(as=Impl.class)のようなものがあるかどうか、または JPA にtargetEntityのようなものがあるかどうかはわかりません

注: github リポジトリのブランチ作品に解決策があります。getRole のデータ型を から に変更しましたが、IRole getRole()動作RoleDto getRole()しますが、前述のようなものを探しています。

0 投票する
10 に答える
46758 参照

java - MapStruct には Impl クラスが必要です

次のクラスがあります:

マッパー

実在物:

DTO:

そして、このマッピングを使用するスプリング サービスクラスのメソッド:

上記のメソッドを実行すると、次の例外が表示されます。

エラー [dispatcherServlet]:? - サーブレット [dispatcherServlet] の Servlet.service() がパス [] のコンテキストで例外をスローしました [ハンドラーの処理に失敗しました。ネストされた例外は java.lang.ExceptionInInitializerError] であり、根本的な原因は java.lang.ClassNotFoundException: dto.DeviceTokensMapperImpl です

では、なぜマッパーは実装クラスを必要とするのでしょうか? 誰かアドバイスをお願いできますか?ありがとう。

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

java - Mapstruct: Generics のマッピング

Yジェネリック型のオブジェクトをジェネリック型の別のオブジェクトにマップしたいX。mapstructでそのようなことは可能ですか? それとも、汎用マッピング用のカスタム マッパーを作成する必要がありますか? 上記のコードをコンパイルすると、コンパイル エラーが発生します。

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

java - Mapstruct: IterableMapping 関数を修飾する方法

エンティティと DTO の間にマッパーがあります。

最初のマッピング関数は、エンティティを一覧表示するための「単純なマッピング」であり、2 番目のマッピング関数は詳細ビュー用です。リストに相当するものが欲しいので、注釈があります:

そして、この修飾子を最初のマッピング関数と List 関数に追加します。

しかし、@Simple注釈があっても、エラーメッセージが表示されます:

コレクション要素を次の場所にマッピングするためのあいまいなマッピング メソッドが見つかりました...

List map(List)関数に最初のマッピング関数を「選択」させるにはどうすればよいですか?

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

generics - ジェネリックを使用した MapStruct 共有構成

エンティティに複数のマーカー インターフェイスと MappedSuperclass-es があり、共有構成を作成して、エンティティ固有のターゲットを無視したいと考えています。

サンプル インターフェイスとクラス:

MapperConfig インターフェイスで次のことを行います。

これは以下をスローします:

この機能はまだカバーされていません。何か不足していますか?