問題タブ [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: 基本クラスからフィールドを削除する
単一の基本クラスを拡張するクラスがたくさんあります。ドーザー マッピングを行っている間、私がやりたいことは、基本クラスのマッピングを 1 つ作成し、サブクラスのマッピング中にそのマッピングを参照することです。
例えば:
だから私が何かをするとき
結果の customMap には valueA が除外されています。
java - Dozer マッピングと Hibernate 遅延初期化
私は次のドーザーマッピングを持っています:
com.company.xx.xx.model.MyClass com.company.xx.xx.model.MyClassToMap
遠く 離れた
顧客 顧客
休止状態で MyClass をロードします。しかし、私は顧客のために遅延読み込みをしています。私は顧客からすべてをロードしません。ただし、マッピングは顧客からすべての属性をマップする必要があるため、遅延初期化例外がスローされます。
顧客からのすべてのフィールドではなく、顧客のみをマッピングするようドーザーに指示するにはどうすればよいですか?
java - Dozerを使用した値オブジェクトのマッピング
Dozerを使用してDTOをJPAエンティティにマッピングしています。
ユースケースの1つは、既存のエンティティのDTO表現がWSに到着し、JPAを使用してエンティティを検索し、Dozerを使用して、map(source、destination)マッピング方法(map(source、destinationClass)ではありません)。
@Embeddablesとして、エンティティ(Addressなど)にいくつかの値オブジェクト(従来の不変の値オブジェクトのセマンティクス)があります。重要なのは、ドーザーが既存のAddressインスタンスにマップするのではなく、たとえばEmployeeオブジェクトに設定するときに、常に新しいAddressインスタンスを作成するようにすることです。
したがって、次のクラスを使用します。
getAddress()を使用して新しいAddress'フィールドをマップしようとするのではなく、常に新しいAddressインスタンスを使用してdozerがsetAddress()を呼び出すようにします。
これを行う方法はありますか?
java - Java、Dozer、Hibernateを使用したデータベースへのDTOマッピングと更新
Dozerを使用してHibernateエンティティをDTOにマッピングしています。簡略化されたサンプルクラスは次のとおりです。
これでマッピングは正常に機能しますが、更新を行おうとすると問題が発生します。データベースに役割(1、「管理者」)があるとします。私のビューでは、最初に更新されたフィールドを使用してDTOを生成します。
最終的に、役割を永続化するクラスはDTOを受け取り、変更を永続化するためにDozerを介してそれをエンティティクラスに変換します。
この時点で、おそらくID列が自動インクリメントとして定義されているために、ロールエンティティがIDを失い、nullIDエンティティを更新できないことは明らかです。
では、IDと更新されたフィールドがすべてエンティティにマップされるように、この問題にどのようにアプローチする必要がありますか?いつでもエンティティオブジェクトを休止状態にして、その各フィールドをDTOのフィールドで更新して保存し直すことはできますが、Dozerを使用する目的全体が無効になります。
助けてくれてありがとう。
apache-flex - 関係のないオブジェクトを Hibernate マップする
次のような関係がある状況があります。
人は 1 つ以上の住所を持っています。顧客は 1 つ以上の住所を持っています。
個人、顧客、住所は別のテーブルです。
@OneToMany 関係でこれを行っていました。フレックスクライアントがクライアントで作成され、DBで作成する必要があるオブジェクトを送信しているため、これは問題を引き起こしています。
クライアントが同じアドレスを参照する個人と顧客を送ってきた場合、2 つのアドレス オブジェクトは同じ Java オブジェクトではない (同じポインターではない) ため、休止状態は 2 つのアドレス オブジェクトを作成します。
これは、サーバーへの送信時に新しいオブジェクトを作成する BlazeDS および Dozer によって引き起こされる問題です。
したがって、関係のない人と顧客オブジェクトのアドレスIDが必要なため、休止状態はオブジェクトを作成しません。しかし、個人オブジェクトを読み取るときに、保存されたアドレス ID に基づいて一時的なアドレス オブジェクトを埋めたいと思います。
これが可能かどうか誰にもわかりますか?
json - クライアントからサーバーへの(スマート)GWTオーバーレイタイプの受け渡しとHibernate永続性の使用
私たちのプロジェクトでは、ギレアデを利用して、GWTRPCモデルを使用してモデルオブジェクトをクライアント側に渡します。私たちが直面している問題は、処理のためにクライアント側でJSONとの間でシリアル化することが、モデルの成長/変更に伴って問題になっていることです。
エンティティオブジェクトのクライアント側の表現としてオーバーレイタイプを使用することを検討しています。
これをHibernateと組み合わせて使用する場合の一般的なアプローチは何ですか?オブジェクトサーバー側を再作成してから永続化する必要がありますか?
クライアント側のオブジェクトを戻し、Dozerを使用してサーバー側のエンティティにマップすることは可能でしょうか?
ありがとう、アンドロス
java - コレクションのマッピング
次のクラスがあるとします。
A1.bList には B1 オブジェクトが含まれ、A2.bList には B1 オブジェクトの ID のみが含まれるクラス A1 を Dozer を使用して A2 にマップしたいと考えています。
マッピングはどのようになりますか?
ありがとうございました。
java - カスタムドーザーマッピング
Dozerを使用してのインスタンスを変換しようとしています
次のインスタンスに:
Javaコードでは、このような会話を実行します
プロパティ(ゲッターのみ)Target
がないため、Dozerはデフォルトではこの変換を実行しません。foos
実際には、マップする必要のあるこのようなプロパティがたくさんあります。1つのオプションは、プライベートフィールドを直接マップするようにDozerに指示することですが、これは完全に満足のいくものではありません。理由は次のとおりです。
- Dozer XML構成で、この方法でマップする各フィールドを名前で指定する必要があります
- プライベートフィールドへのアクセスは悪い
もっと良い方法はありますか?
dozer - Dozer を使用してブール値を文字列に変換するにはどうすればよいですか?
私はドーザーが初めてで、文字列をブール値に、またはその逆にマップしようとしています。Dozer はこれをサポートしていますか、それともカスタム コンバーターを作成する必要がありますか。文字列には true または false が含まれるため、直接マップされます。また、XML 構成ではなく Dozer API を使用しています。ご協力いただきありがとうございます