定型コードなしで DTO をエンティティにマップする簡単な方法を見つけようとしています。dozer を使用することを考えていましたが、多くの xml 構成が必要なようです。純粋な Java で Bean マッピングを構成するために DSL を使用する dozer の代替を見た人はいますか?
理想的には、Guice のやり方に触発された Bean マッパーを見つけたいと思っています。
定型コードなしで DTO をエンティティにマップする簡単な方法を見つけようとしています。dozer を使用することを考えていましたが、多くの xml 構成が必要なようです。純粋な Java で Bean マッピングを構成するために DSL を使用する dozer の代替を見た人はいますか?
理想的には、Guice のやり方に触発された Bean マッパーを見つけたいと思っています。
オリカ見て。
Orika は、あるオブジェクトから別のオブジェクトにデータを再帰的にコピーする Java Bean マッピング フレームワークです。これは、多層アプリケーションを開発する際に非常に役立ちます。
私も代替品を探していました。
これは、さまざまなオプションの非常に優れたカバレッジです。
私の観点からは、いくつかの特別なプロパティをマップするための構成または Java コードが常に必要です。
ここで、たとえばDO
andを取りたいと思います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
<---->DTO.name1
またはDO.nestedObj.id
<--->DTO.nestedId
マッピングツールにそれを行うつもりであることを伝えるために、(xmlまたはjavaを介して)構成を行う必要があります。あなたのユースケースでは、Dozer、Orika、ModelMapper はすべて問題ないと思います。しかし、私はパフォーマンスのために、プロジェクトをブルドーザーから Orika に切り替えています。Orika は dozer ほど成熟していませんが、知性も高くなく、カスタマイズしたマッピング構成を維持するために多くの追加作業を行う必要があります。あなたのプロジェクトがパフォーマンスをあまり気にしないのであれば、ドーザーをお勧めします。ドーザーはとても使いやすく、非常に多くの高度な機能をサポートしています。そうでなければ、高性能を購入する場合は、オリカをお勧めします。