Я ищу лучшие практики в отношении моделей и способов сохранения объектов в базе данных с помощью play 2.0. Я изучил образцы Play и typesafe для play 2.0, используя scala.
Насколько я понимаю:
Поэтому, если мне нужно обновить мой объект Car для определения нового владельца, который мне нужно будет сделать:
val updatedCar = myCar.copy(owner=newOwner)
Car.update(updatedCar)
// or
Car.updateOwner(myCar.id.get, newOwner)
Мне интересно, почему операторы обновления или удаления не находятся в самом классе case:
case class Car(id: Pk[Long] = NotAssigned, owner: String) {
def updateOwner(newOwner: String) {
DB.withConnection { implicit connection =>
SQL(
"""
update car
set owner = {newOwner}
where id = {id}
"""
).on(
'id -> id,
'newOwner -> newOwner
).executeUpdate()
}
copy(owner = newOwner)
}
}
Это позволит сделать:
val updatedCar = myCar.updateOwner(newOwner)
Что именно Раньше я делал с Play 1.X, используя Java и JPA. Возможно, причина очевидна и связана с моим небольшим знанием Scala.