Beanマッピングのドーザーの代替手段[閉まっている]
-
05-07-2019 - |
質問
定型コードなしでDTOをエンティティにマッピングする簡単な方法を見つけようとしています。私はドーザーの使用を考えていましたが、多くのxml構成が必要なようです。 DSLを使用してピュアJavaでBeanマッピングを構成するドーザーの代替案を見たことがありますか?
理想的には、Guiceのやり方に触発されたBeanマッパーを見つけたいと思っています。
解決
代替手段も探していました。
こちらは、さまざまなオプションを非常によくカバーしています。
他のヒント
オリカをご覧ください。
Orikaは、1つのオブジェクトから別のオブジェクトに(他の機能の中でも)再帰的にデータをコピーするJava Beanマッピングフレームワークです。多層アプリケーションを開発するときに非常に役立ちます。
私の観点からは、いくつかの特別なプロパティをマップするための構成またはJavaコードが常に必要です。
ここでは、たとえばDO
とDTO
を取り上げます
DO:{
id: "id",
name:"name",
doName1: "doName1",
nestedObj: {
id: "nestedObjId",
name: "nestedObjName"
}
}
DTO{
id: "",
name: "",
name1: "" // for mapping doName1 in DO.
nestedId: "", //for DT.nestObj.id
nestedName: "", //for DT.nestObj.name
}
DozerまたはOrikaでは、プロパティと名前が同じであるため、設定またはJavaコードなしでDOとDTOの間でidとnameプロパティを自動的に一致させることができます。
ただし、DO.doName1
<!> lt; ---- <!> gt; DTO.name1
またはDO.nestedObj.id
<!> lt; --- <!> gt; DTO.nestedId
マッピングツールにそれを行うつもりであることを伝えるために(xmlまたはjavaを介して)何らかの設定を行う必要があります。
あなたのユースケースでは、Dozer、Orika、ModelMapperはすべて大丈夫だと思います。しかし、私にとっては、パフォーマンスのためにプロジェクトをドーザーからオリカに切り替えています。 Orikaはドーザーほど成熟していませんが、知性はそれほど高くないため、カスタマイズされたマッピング構成を維持するために多くの追加作業を行う必要があります。
プロジェクトでパフォーマンスをあまり気にしない場合は、ドーザーをお勧めします。<!>#8217;とても使いやすく、非常に多くの高度な機能をサポートしています。それ以外の場合、高性能を購入する場合は、オリカをお勧めします。