問題タブ [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 投票する
2 に答える
21889 参照

java - MapStruct 文字列からリストへのマッピング

文字列をリストに、リストを文字列にマップするにはどうすればよいですか?

次のクラスがあると考えてください

Dozer と Orika では、次のコード行で簡単にマッピングできます

MapStruct で同じ種類のマッピングを行うにはどうすればよいですか? mapstruct の他の例はどこにありますか?

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

java - Mapstructコレクションマッパーで装飾されたメソッドを使用するには?

依存性注入を使用する Spring アプリで、MapStruct を使用して JPA エンティティから POJO DTO にマップしています。

ドキュメントで指定されているように、デコレータのメソッドに DTO の追加処理を追加しました。

単一のエンティティのマッピングには問題なく機能します。しかし、これらのエンティティのコレクション (セット) のマッピングもあり、これらのエンティティのコレクションがリレーションシップで見つかると、メソッドが自動的に呼び出されます。

ただし、生成されたコレクション マッピング メソッドは、装飾されたメソッドを使用して各エンティティをマップするのではなく、デリゲートで「バニラ」生成メソッドを使用するだけです。生成されたメソッドのコードは次のとおりです。

デリゲート メソッド自体はデコレータを認識せず、個別のアイテム マッピング メソッドを呼び出します。

...そして、コレクション内のアイテムに対して装飾されたメソッドが呼び出されることはありません。

Mapstruct にコレクション マッピングでデコレータ メソッドを使用させる方法はありますか? デコレータでコレクション メソッドを手動で記述する以外に方法はありますか?この種のコードを書く)?

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

java - mapstruct を使用したネストされたオブジェクトのマッピング

以下のようなマッピングを作成します。(street、city など) のようなフラットな dto オブジェクト プロパティをドメイン オブジェクトのネストされたアドレスにマップする方法。しようとすると、エラーが発生しました:

[エラー] 診断: 戻り値の型に不明なプロパティ "address.postalCode" があります。@Mapping(source = "city", target = "address.city"),

そして授業...

0 投票する
4 に答える
10288 参照

jpa - 戻り型の不明なプロパティ

Play 2.4 Java8 JPA プロジェクトで mapstruct を使用しようとしています。私が行った手順:

追加された依存関係

モデル

従業員Dto

従業員マッパー

しかし、コンパイルエラーが発生します

エラーの原因は何ですか?

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

mapstruct - Mapstruct - 数式を使用したフィールドのマッピング (例: target="x"、source="a+b")

mapstrcut を使用してエンティティを dto にマップしていますが、DTO に「割引」という余分なフィールドがあり、このフィールドへの入力を管理するには mapstruct が必要であり、このフィールドは 2 に基づいて計算されるという問題に直面しています。値 (salePrice と RetailPrice)。

私の質問は、mapstruct を使用するように、この種のマッピングを行うにはどうすればよいですか。

この行を追加しようとすると、ビルド中にコードが壊れて次のように表示されます。

では、どうすればそのようなマッピングを行うことができますか?

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

mapstruct - mapstruct SPI を使用した CustomNaming 戦略

別のセッター命名規則を使用して、Bean で mapstruct を動作させようとしています。プロジェクト内のいくつかの Bean は、次のような名前です。withValue(string val)

ドキュメントに基づいて、プロジェクトに AccessorNamingStrategy を実装し、SPI を構成することができます。これに基づいて、独自の NamingStrategy を作成し、プロジェクトに次のファイルを作成しました

/META-INF/services/org.mapstruct.ap.spi.AccessorNamingStrategy カスタム実装の完全修飾名が含まれています。

しかし、カスタム命名戦略で spi を機能させることができなかったようです。

Options.java を調べてみると、プロパティ " mapstruct.alwaysGenerateServicesFile" を true に設定する必要があることがわかりました。しかし、intelliJ のアノテーション プロセッサは、どのアノテーション プロセッサにも認識されていないため、このプロパティを拒否しているようです。

このプロパティ " " がhttp://mapstruct.org/documentation/1.1/reference/html/index.html#configuration-optionsmapstruct.alwaysGenerateServicesFileに記載されていないこともわかります

この機能は MapStruct でまだサポートされていますか? あなたのプロジェクトでカスタム命名戦略が機能している人はいますか?

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

java - Override a method in Mapper class or customer mapper or attribute mapping- Spring Boot

I have the following DTO,Entity,Mapper classes that persist value in database.I am facing issues in one of those attributes which is of Date column. I input a string in "DD-MM-yyyy" format. However it fails in the mapper class saying its an unparseable date. Am not sure why there is no default date format in the compile time generated class

Database structure

enter image description here DTO

Entity

Snippet from the Mapper Implementation class generated during compile time which is failing and throwing back error saying unparseable date

Code in the service layer which uses mapper class and fails

Custom code in the service layer without using mapper which uses explicitly defined simpledate format which is working fine. Please advise as to how to fix this and use Spring boot way stack since my whole applications is designed around it. It wont be good If I do not use the default supplied mapper class and implementation.