2

次のような多くのフィールドを持つケースクラスがあります。

case class Person(id: Long, name: String, login: String, passwordHash: String, ...)

また、いくつかのフィールドを編集するための Web ページ (Play) もありますPersonPersonこのページは、ページに表示されるフィールドのサブセットを含む別のケース クラスで動作します。

case class PersonProjection(id: Long, name: String)

そのような射影はたくさんあり、いくつかのフィールド ( などid) は多くの射影で使用できます。

で既存のインスタンスを構築PersonProjectionPersonて更新する方法を教えてください。PersonPersonProjection

確かに私はこの変換を自分で実装していますが、この状況には何らかのベストプラクティスがあるのではないでしょうか? いくつかのライブラリまたはパターン?レンズはここに適していますか?

ありがとう!

4

2 に答える 2

0

フィールド マッピングは任意であるため、クラスからそのプロジェクションへのマッピングを回避することはできません。クラスからプロジェクションへの移行は非常に簡単なはずですが、デフォルト値がない場合、その逆はおそらくより複雑です。バッキング ストアで何らかの ID を検索し、元のオブジェクトを取得してから、他のフィールドで更新を実行するつもりですか?

何かがあなたを助けることができるなら、それはその同型性を持つ形のないものになります.

于 2013-08-27T07:37:11.967 に答える