問題タブ [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マッピング?
次のシナリオがあります。
longList
今、私は と の間で変換したいC
。次のマッピングが見つかりました:
上記のマッピングが適切な解決策であるかどうかはわかりません。long が にマップされるように、long
との間のマッピングを設定できますか?C
C.id
properties - ブルドーザーを使用したさまざまなパッケージのBeanのプロパティのマッピング
ドーザーを使用して、さまざまなパッケージに含まれるBeanのプロパティをマップしようとしています。例:
これはブルドーザーで可能ですか。ありがとう
java - あるオブジェクトから別のオブジェクトに文字列プロパティのみをコピーする
私はドーザーで作業していましたが、ドーザーがサポートしていないと思われる特別なシナリオがありました。String、Ingeger、その他のプリミティブ型など、さまざまな型のプロパティを持つクラスがあるとします。今、このクラスから別のクラスに文字列プロパティのみをコピーしたいと思います。ここにサンプルコードがあります:(非常に簡単ですが、問題を適切に理解できます。)
今、私は次のような考えが欲しいです、
どのブルドーザーでも可能ですか?私はドーザーに精通しています。ただし、apache beanutil や ModelMapper などの他の API に対しては動作します。この技術のいずれかで自由に答えてください。
java - Dozer でのマッピング回避策を設定するためのマップ
Dozer で Map を Set に変換しようとしていますが、どうしてもカスタム コンバーターを作成する必要がないようにしたいと考えています。とにかく、設定ファイルで get-method 属性を使用してセットから値のコレクションを取得し (キー値を失うことは問題ではありません)、そこから Dozer に変換させることはできますか?
ここに私がこれまでに持っているものがありますが、それは機能していません
java - Dozer に宛先フィールドで LinkedHashSet コレクションを使用するように指示する方法は?
ファーストクラスにはフィールドがあります:
LinkedHashSet 実装が含まれます。
2 番目のクラスには同一の宣言がありますが、マッピング中に Dozer は宛先クラスに HashSet 実装を作成し、要素の順序を破壊します。Dozer に宛先クラスで LinkedHashSet を使用するように指示するには?
dozer - ドーザー マッピングで環境変数にアクセスする
dozer マッピング ファイルの環境変数にアクセスしたいと考えています。方法はありますか?公式ドキュメントを調べたところ、変数の使用法がリストされていました。しかし、それらは環境変数ではありません。また、dozer マッピング ファイルの .property ファイルの値にアクセスする方法はありますか?
glassfish - Dozer DozerBeanMapper インスタンス化 スタートアップ EJB アプリケーション サーバー Glassfish
Dozer のドキュメントには、サーバー上のアプリで DozerBeanMapper のインスタンスを 1 つだけ実行する必要があると記載されています。最初の開発ではこれを無視しましたが、今はこれを行うようにアプリを更新したいと考えています。
アプリケーションが Glassfish で起動したときに DozerBeanMapper クラスをインスタンス化するにはどうすればよいですか?また、アプリケーションが起動または新しくデプロイされたら、別のクラスでその「マップ」メソッドにアクセスするにはどうすればよいですか?
これは EJB 用であるため、サーブレットを使用してこれを行うことはできません。
OK、ようやくこのコードをリファクタリングする時間ができました。@Mikko Maunu からのポインタを使用して、質問を編集して、将来役に立つと思われる人のために、私のために働いているコードを提供しています。
そして、ここに簡単なユースケースがあります:
EJB メンバー変数をクライアント クラスに注入します。
クライアント クラスのどこかにあるメソッド内で、次のように dozer マッパーを呼び出すことができます。
これが間違っているか、ベースから外れている場合は、誰かがコメントを残してください. それまでは、これでうまくいくようですので、Mikko の意見で開発したこのソリューションを使用します。
mapping - dozer.xmlでの日付形式の構成
Dozerマッパーを使用してServiceオブジェクトをValueオブジェクトにマップしています。私は次の方法で日付をマッピングしています:
ただし、毎回日付の形式を指定する必要があります。文字列の日付を直接マップする他のアプローチはありますか?
java - 複合主キーを持つエンティティ クラスへの Dozer マッピング
主なエンティティ クラスは「注文」です。複合主キー(orderId、orderName)の「OrderPK」というjpaエンティティクラスを作成しました。Dozer マッピングを使用して、別のクラスを「Order」クラスにマッピングしています。しかし、Dozer は、複合プライマリ キー エンティティ (orderId、orderName) のメイン クラスから Order クラスに値をマッピングしていません。複合に null 値を設定しています。主キーの値 (orderId、orderName)。なぜそうなのですか?
java - Dozer - null ではなく空のオブジェクト
ドーザーでは、値をnullではなく空のオブジェクトにグローバルに初期化する方法
例:
同様に、Person と Address に似たオブジェクト PersonVO と AddressVO があります。
ドーザーを使用して値をマッピングした後、アドレス値が Person オブジェクトで null の場合、結果はnull ポインター例外personvo.getAddressVO.getAddressField1()
をスローしますが、これを回避する方法はありますか?
カスタムコンバーターを使用すると、カスタムコンバーターで値を設定する一般的な方法を実行することになり、ドーザーを使用する目的が無効になります。