問題タブ [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 - STS の Spring Boot は、生成されたコード クラスを使用していません
新しいスプリング ブート プロジェクト (個人用) で mapstruct によって生成されたクラスを使用しようとしていますが、ビルド スクリプトには別のものが必要なようです。
クラスが正しく生成されているため、それら(ビルドフォルダー内のJavaおよびクラスファイル)が表示され、アプリケーションがjarファイルから実行されると、実際に機能します。
問題は、Eclipse STS から実行すると、Spring が生成されたクラスを見つけることができないと表示され、@Component を使用して作成され、ComponentScanPath にあることを確認しました。
build.gradle
また、プロジェクトのbinフォルダー内に生成されていないようです
java - mapstruct 用に作成された抽象クラス内の自動配線
Spring を使用して REST コントローラーを構築しようとしています。読みやすさと統合性を高めるためにデータをフォーマットするために、Mapstruct を使用しました。これがMapperの書き方です。
APIコントローラー関数は次のようになります
出力 deviceData は、1 つの詳細を除いて正常に返されます。この関数にアクセスできませんでしたdeviceService.findDeviceTemplateById(toDevice.getDeviceTemplateId()
(deviceService は自動配線されています)。エラー スタック トレースに NullPointerException が表示されます。抽象クラスの自動配線されたリソースのアクセシビリティに関する一般的なルールがあるかどうか疑問に思っていますか? または、この関数にアクセスできないようにするインスタンス化の方法はありますか? 機能させるには何を変更すればよいですか?私も同じ結果で@Inject
fromを試しました。javax.inject
java - ソースとターゲットは同じインターフェース MapStruct を共有します
こんにちはMapStructを使用して次の問題があります。次のインターフェイスがあります。
私は両方の2つの実装を持っています:
User、UserDto、Role、および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()
しますが、前述のようなものを探しています。
java - MapStruct には Impl クラスが必要です
次のクラスがあります:
マッパー
実在物:
DTO:
そして、このマッピングを使用するスプリング サービスクラスのメソッド:
上記のメソッドを実行すると、次の例外が表示されます。
エラー [dispatcherServlet]:? - サーブレット [dispatcherServlet] の Servlet.service() がパス [] のコンテキストで例外をスローしました [ハンドラーの処理に失敗しました。ネストされた例外は java.lang.ExceptionInInitializerError] であり、根本的な原因は java.lang.ClassNotFoundException: dto.DeviceTokensMapperImpl です
では、なぜマッパーは実装クラスを必要とするのでしょうか? 誰かアドバイスをお願いできますか?ありがとう。
java - Mapstruct: Generics のマッピング
Y
ジェネリック型のオブジェクトをジェネリック型の別のオブジェクトにマップしたいX
。mapstructでそのようなことは可能ですか? それとも、汎用マッピング用のカスタム マッパーを作成する必要がありますか? 上記のコードをコンパイルすると、コンパイル エラーが発生します。
java - Mapstruct: IterableMapping 関数を修飾する方法
エンティティと DTO の間にマッパーがあります。
最初のマッピング関数は、エンティティを一覧表示するための「単純なマッピング」であり、2 番目のマッピング関数は詳細ビュー用です。リストに相当するものが欲しいので、注釈があります:
そして、この修飾子を最初のマッピング関数と List 関数に追加します。
しかし、@Simple
注釈があっても、エラーメッセージが表示されます:
コレクション要素を次の場所にマッピングするためのあいまいなマッピング メソッドが見つかりました...
List map(List)
関数に最初のマッピング関数を「選択」させるにはどうすればよいですか?
generics - ジェネリックを使用した MapStruct 共有構成
エンティティに複数のマーカー インターフェイスと MappedSuperclass-es があり、共有構成を作成して、エンティティ固有のターゲットを無視したいと考えています。
サンプル インターフェイスとクラス:
MapperConfig インターフェイスで次のことを行います。
これは以下をスローします:
この機能はまだカバーされていません。何か不足していますか?