プロパティが次のクラスがありますOption[T]
class User extends IdBaseEntity[UUID] {
var id: オプション[UUID] = なし
変数名: Option[文字列] = なし
var createdOn: Option[Date] = なし
}
一部のデータ アクセス レイヤーでは、オブジェクトが cassandra に永続化される前にこれらのプロパティが設定されていない場合、これらのプロパティを割り当てる必要があります。ここでは、createdOnプロパティのいくつかの方法を示します。これらのいずれかが最善のアプローチですか、それとも私がすべきことはありますか?
例 1
entity.createdOn = Some(entity.createdOn.map(identity).getOrElse(new Date()))
例 2
entity.createdOn = entity.createdOn.orElse(Some(new Date()))
例 3
entity.createdOn = entity.createdOn 一致 {
case None => Some(new Date())
ケース _ => entity.createdOn
}
例 4
entity.createdOn = entity.createdOn 一致 {
case None => Some(new Date())
ケース Some(x) => Some(x)
}
例 5
entity.createdOn マッチ {
case None => entity.createdOn = Some(new Date())
ケース _ =>;
}