問題タブ [dozer]
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 - Dozer文字列から列挙型へのマッピング
私はそのような列挙型を持っています:
文字列に変換する必要があります。その逆も同様です。現在、それはカスタムコンバーターによって行われます。しかし、私はドーザーマッピングを介してそれをやりたいです(可能であれば)。私がドーザー会議にマッピングを書かない場合、私は得ます
例外。デフォルトのパブリックコンストラクターを列挙型に追加することはできません。これは不可能です。だから、私は内部コードとvalueOfCode()/ toString()でトリックを書きました。それは動作しません。それから、私はそれをドーザー構成にマッピングしました:
それは動作しません。一方向マッピングであるvalueOfCode()を試しました。何も機能しません。列挙型から文字列への変換も機能しません。空の文字列を取得します。何か案は?
java - Dozer: フィールド名の戦略を変更
ご存知のように、dozer は 2 つの Bean 間のマッピングに同じフィールド名を使用しますが、このマッピング戦略を簡単に変更するにはどうすればよいでしょうか。
上記のケースでは、フィールドと TO が多すぎるため、マッピング ファイルを定義したくありません。デフォルトのマッピング戦略を変更し、上記のように更新したいだけです: thisField = THIS_FIELD. 何か提案があればありがとう。
java - アノテーション付き Dozer ディープ マッピング
ソース クラスからターゲット クラスSourceEmployee.Address.houseName
へのディープ マッピングをマップできませんTargetEmployee.houseName
ソース オブジェクト クラス
住所クラス
対象物
ソースから宛先へのメインクラスのコピー
dozer - Dozer ファイルが見つからないという例外
以下のドーザーの例を実行しようとしています。XML ファイルは Java ファイルと同じ場所にありますが、ファイルが見つからないという例外が発生します。
完全なファイルパスを指定すると動作しますが、以下の例外が発生します
ソースコード
java - ドーザーで抽象クラスとしてタイプを持つフィールドをマップする方法は?
次のドメイン構造があります。
この次のドーザー マッピングを設定すると、次のようになります。
フィールド Contract.contractor は抽象クラスであり、ドーザーはそれをインスタンス化する方法を推測できないため、私の問題は B から A へのフィールド Contract.contractor のマッピングに関するものです。
Employer
したがって、私の質問は簡単です。フィールド Contract.contractor のマッピングのために、 if type == 'Employer
' および他の場所のインスタンスをインスタンス化する必要があることを dozer にどのように示すことができますEmployee
か?
ご協力ありがとうございました。
java - Dozer: 国際化/ローカリゼーションに対応した CustomerConverter、実装方法は?
私はまだ Dozer を使用していませんが、Dozer は有望なようです。私はかなり多くのドキュメントを読みましたが、ローカリゼーション/国際化に対応した CustomConverter を作成するために何をする必要があるかについては、まだ完全にわかりません。
例: ロケールに応じて、文字列値を日付に変換したいと考えています。私はDTO(ロケールなし)ともちろんロケール(ServletContainer => Browserから)を持っています。ロケールを CustomConverter またはマッピング プロセスに挿入して、ロケール固有の変換に使用し、ロケール オブジェクトにアクセスできるようにするにはどうすればよいですか? (そして、より一般的には、コンバーターで使用できるある種の「コンテキストオブジェクト」を一般的に注入する方法...
これがどのように実装されるか、または可能であれば、非常に大まかな手順を述べてくれて非常に感謝しています。どうもありがとうございました!
java - Dozerを使用してネストされたコレクションを変換する
クラスBのネストされたセットを持つクラスAがあります。
クラスDのネストされたセットを持つクラスCもあります。
Aのリストが与えられたら、どうすればそれをCのリストに変換できますか?ジェネリックを使用しているので、理想的にはマッピングのヒントを提供する必要はありません。例えば:
明らかに、最後の行の構文は正しくありません。それはどうあるべきですか?また、作成するリストまたはセットのタイプをDozerに指示するにはどうすればよいですか?
ありがとう。
ナレシュ
dozer - Dozer 5.3.2 の問題 NoClassDefFoundError
dozer 5.2.2 から 5.3.2 にアップグレードしようとしていますが、次のエラーが表示されます
java.lang.NoClassDefFoundError: クラス org.dozer.DozerBeanMapper を初期化できませんでした
クラスパスとbuild.xmlファイルにあり、ワークスペース内のすべての参照を5.2.2から5.3.2に変更しました。5.1から5.2.2にアップグレードするときに同様のことを行いましたが、うまくいきました。
どんな助けでも大歓迎です。
ありがとう。
java - `this` を Dozer フィールド マッピングに渡す方法は?
私のアプリでは、次のような Dozer マッピングがあります。
MyConverter
のインスタンスですConfigurableCustomConverter
:
ソース内のコメントに記載されていることがなぜ起こるのですか?
mapping - いつマッピング フレームワークを使用し、いつ手動でマッピングするのですか?
DTO などの並列オブジェクト階層について質問があります。
これらの階層は、何らかの形で相互にマッピングする必要があります。最も簡単な方法は、単純なマッピングを手動で使用することです。この場合、あるオブジェクトから別のオブジェクトにプロパティ値を 1 つずつ転送するコードを書くだけです。
この方法は非常に手間がかかりますが、最も可変性が高く、最高のパフォーマンスが得られます。また、そのようなマッピングを書くのはとても簡単です。
もう 1 つの方法は、DOZER などのマッピング フレームワークを使用することです。この方法は面倒ではありませんが、多少の変動性が失われます。一部の複雑なマッピングは、不可能ではないにしても実現が困難です。パフォーマンスも低下します。
だから私の質問は:
いつマッピング フレームワークを使用するか、いつ手動でマッピングするかについての推奨事項はありますか? マッピングの複雑さに依存しますか? それとも、常にマッピング フレームワークを使用する方がよいでしょうか。
前もって感謝します。