ここでは、データ更新で更新されたデータを決定するシナリオを示します。ケースクラスオブジェクトのSeqはIDを持ち、ケースクラスはIDフィールドを除く属性のデータ比較を行うoverride equalsメソッドを持っています。更新されたデータエントリを見つけるには、私はDBからデータを取得する必要があります。そして、2つの配列の比較が必要である。更新されるオブジェクトを見つけるためのScalaのアプローチとは何ですか?Scalaでの2つのSeqの比較
ちょっと考えてみましょう:オブジェクトIDをキーとして、オブジェクトを値としてマップを作成すること。それはうまくいくかもしれない。
(更新)ここで私は、私はあなたが右理解していれば、あなたはすでにequals
をオーバーライドすることで、ハードワークのほとんどをやった
val existingDataList: Foo = ...
val existingDataMap: Map[Long, Foo] = existingDataList.map(d => d.id -> d)(collection.breakOut)
// To find out updated data
val updatedData = inputData.filter(d => existingDataMap.get(d.id) != d)
いくつかの高度なScaleアプローチをお披露してくれてありがとう。 – TeeKai