次の機能では、ユーザーを更新しています。しかし、ユーザーはデシベルになります「CreatedDateに」フィールドを持っていますが、クライアントから渡されたユーザエンティティになりません。更新後の更新/除外フィールドの前に、フィルタ後のエンティティのスリック更新フィールド?
def update(user: User): Future[Int] = {
db.run(
userTable
.filter(_.userId === user.userId)
// Can I set user.createdDate here to the existing value?
.update(user)
)
}
はそれから値を使用して、user.createdDateを設定するために、おそらくです私は更新(ユーザー)を呼び出す前に、dbの既存のユーザー行ですか?ここでは参考のため
は、(ユーザーが不変ケースクラスですので、私はCreatedDateにを設定するためのコピーを行う)、ユーザーを作成するときに、私はCreatedDateにフィールドを設定する方法である:
def create(user: User): Future[Int] = {
db.run(userTable += user.copy(
createdDate = Option(Timestamp.valueOf(LocalDateTime.now()))))
}
おかげで私のUserクラスは、フィールドの多くを持っているものの、約15(私の例に示されていない)ので、このかもしれませんたくさんのフィールドで扱いにくいですか?また、後でUserにフィールドが追加された場合、このメソッドを新しいフィールドで更新する必要がありますか? – Rory
User caseクラスまたはそのコンパニオン内の 'map'内に' updateFunction'を定義することができます。多分それらを一緒に保つのに役立ちます。 –