Я новичок и в Scala & Playframework и пытаюсь понять эту идею использования Option[Long]
или Option[Int]
в классах. Для примера, я вижу это много:Scala: "id: Option [Long]"?
case class User(id: Option[Long],
name: String)
Почему я, используя Option[Long]
вместо того, чтобы просто Long
, если это необходимо? Как я буду автоматически увеличивать Long
(а не Option[Long]
) при вставке нового пользователя?
Кроме того, я не слишком хорошо знаком с концепцией фьючерсов и обещаний, но может ли это быть использовано?
пса жаль, если эти тупые вопросы
Кажется, это неудобный подход. В идеале вы должны иметь «Option [Long]» при создании и «Long» при чтении. Я понимаю, что это сложно, когда это база данных, создающая «длинный» вопрос, но по-прежнему кажется субоптимальным иметь дело с «Нет», когда он будет «Некотовым» после его загрузки из базы данных. –
@MysteriousDan вы правы, и вы можете попробовать, если полностью исключает идентификатор пользователя. Вы всегда можете использовать (длинный, пользовательский) кортеж, когда вам это нужно, или создать другой класс класса SaveUser (id: Long, user: User) или даже подумать об общем классе класса Saved [Model]. Если ваш макет данных не подходит, измените его, пока он не станет идеально. –