問題タブ [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 のマップ コレクション サイズ
ドーザーでコレクションサイズをマッピングする方法はありますか?
types - Dozer:JAXBElementsからJavaタイプへ?
私は(Dozerを使用して)JAXB DTOをPOJOに変換しようとしています(実際には、永続化する前にJPA注釈付きのHibernateエンティティに変換します)。現在の問題は、現在Dozerが要素をJAXB JAXBElement <>タイプからJAXBElement.getValue()タイプに変換していないように見えることです。したがって、たとえば、JAXBElementは、java.lang.StringではなくJAXBElementとしてPOJOに変換されます。プロパティ名は一般的です。JAXBElementラッパーが唯一の違いです。
JAXB-> javaタイプの遷移を処理するカスタムコンバーターを作成せずにこれを行う簡単な方法はありますか?当たり前のように思えるので、何かが足りない気がします。Dozer FAQには、POJO-> JAXBのみが記載されており、その逆はありません...
ご協力いただきありがとうございます!
logging - ブルドーザーだけのデバッグをオフにする方法は?
ブルドーザーだけのデバッグログをオフにする方法はありますか?少なくともデバッグレベルを超えて増やす必要はありませんか?
java - dozer で中間コレクションを使用して深いプロパティをマッピングする
次のクラスがあるとします
Bazを指定して、それをターゲットクラスにマップし、Bazのfooに含まれる文字列のリストを取得するために使用できるマッピングはありますか? 次のマッピングは機能しません
string は foos (リスト型) のプロパティではないためです。Dozer は、深いマッピングでコレクションに遭遇し、ターゲットもコレクションである場合、深いプロパティ名を 2 つに分割し、コレクション全体を反復処理して子部分を取得できるほど賢いと思っていたでしょう。コレクション メンバーからのディープ マッピングの。どうやらそうではありません。Dozer の機能リクエストを行う以外に解決策はありますか?
java - プリミティブ型の dozer カスタム コンバーター
以下の URL には、dozer カスタム コンバーターの例があります。
しかし、私がその例を試してみると、このような例外が発生しました..
タイプ: null ソース親クラス: dozerPackage.Source ソース フィールド名: images ソース フィールド タイプ: クラス java.util.ArrayList ソース フィールド値: [www, eee] 宛先親クラス: dozerPackage.Destination 宛先フィールド名: numOfImages 宛先フィールド タイプ:整数
org.dozer.MappingException: 宛先タイプ (int) は、このカスタム コンバーター (dozerPackage.TestCustomFieldConverter) によって受け入れられません!
ドーザーカスタムコンバーターからプリミティブ型を返す方法はありますか..
java - DTO への Hibernate オブジェクトの Dozer マッピング
Dozer を使用して、ドメイン エンティティを DTO オブジェクトに変換しようとしています。だから、PersistentList、PersistentBag、...を私のドメインエンティティからArrayListに変換したい...私のDTOオブジェクトでは、怠惰な問題を避けることができます。
これは、私のドメイン エンティティの 2 つの例です。
クラスがDTO型であることを除いて、私のDTOオブジェクトは同じです。したがって、ドメインを DTO オブジェクトに変換するには、次の Dozer マッピングを使用します。
BagConverter は Dozer カスタム コンバーターであり、それがそのコードです。
したがって、ロールを持つ PersistentBag を含む User オブジェクトを取得します。そのオブジェクトに dozer マッパー マップを適用して、UserDTO オブジェクトを取得します。取得した結果は、Role の ArrayList を持つ UserDTO オブジェクトであり、RoleDTO の ArrayList はありません。
カスタム コンバーターを使用しても、dozer はリストの内容を変換してくれると思いました。それは正しい方法ではありませんか?いいえの場合、永続的なコレクションを従来の Java コレクションに置き換えて、ドメイン エンティティを dto オブジェクトに変換するにはどうすればよいですか?
ご協力いただきありがとうございます。
シルヴァン。
java - Dozer のディープ マッピングが機能しない
クラス間のマッピングに dozer 4.1 を使用しようとしています。次のようなソース クラスがあります。
次のような宛先クラスがあります。
したがって、基本的に、詳細配列の文字列を Details オブジェクトの List に入力する必要があります。
私はこのようなマッピングを試みました:
しかし、私はこのエラーが発生します:
これが機能するようにマップするにはどうすればよいですか?
java - 実行時にDozerで属性のマッピングを見つける方法は?
Dozerを使用して、Java Bean 間のマッピングを行います。そこに存在するすべてのマッピングを含む dozer マッピング ファイルがあります。サンプル マッピングを以下に示します。
ここで、実行時にマッピングを見つけたいと思います。たとえば、フィールドを string として指定すると、それがプログラムcom.xyz.A.key
でマップされていることを確認したいと思います。com.xyz.B.id
Dozer API (org.dozer.Mapper
インターフェース) を調べたところ、Bean をマップするためだけにメソッドが公開されています。
だから私の質問は: プログラムでマッピングを見つけるための API はありますか?
java - Dozerを使用して、あるタイプのリストを別のタイプの配列に変換します
Dozerを使用して、Javaであるタイプのリストを別のタイプの配列に変換する方法を知りたいです。2つのタイプは、すべて同じプロパティ名/タイプを持っています。たとえば、これら2つのクラスについて考えてみます。
私はこれを運が悪かったので試しました。
また、CollectionUtilsクラスを使用してみました。
どちらも私のために働いていません、誰かが私が間違っていることを教えてもらえますか?2つのラッパークラスを作成すると、mapper.map関数は正常に機能します。1つはListを含み、もう1つはab[]を含みます。下記参照:
これは奇妙なことに十分に機能します...
ラッパークラス(CおよびD)を使用せずにやりたいことを行うにはどうすればよいですか?もっと簡単な方法が必要です...ありがとう!
java - 親の基本クラスオブジェクトを取得する方法super.getClass()
Java(C ++プログラマー)に少し問題があります。
私には2つの関連するクラスがあります:
これは出力します:
クラスorg.example.smartgwt.server.model.PatientPersistent
親クラスタイプを取得する方法はありますか?すなわち
クラスorg.example.smartgwt.server.model.Patient。
これにより、ひどい各子に実装する必要のあるいくつかのメソッドを一般化することができます。
ありがとう!
アップデート
Dozerを使用して、ドメインのHibernateオブジェクトをSerializableバージョンに変換しています。クライアントにこれを知らせたくないので、クライアントには患者クラスのみが表示されます。サーバー側では、変換を実行します。
私はこのコードが機能しないことを知っていますが、それは私の主張をするためだけのものです。オブジェクトをシリアル化可能な形式に変換して、クライアントに送り返すことができるようにしたいと思います。そのため、親のタイプを指定したいと思います。マッパーの呼び出しは常に同じものであり、ソースオブジェクトとDest.classです。
たぶん私はJavaとあまりにも混乱しています。
ありがとう