我正在尋找有關使用Play 2.0在數據庫中堅持對象的模型和方法的最佳做法。我已經使用scala研究了play 2.0和typesafe樣本。播放2.0模型的最佳做法
我的理解是:
- 該模型的情況下類
- 所有插入/更新定義/刪除/選擇在這種情況下類的同伴對象定義
所以,如果我需要更新我的車對象定義一個新的老闆,我必須做的:
val updatedCar = myCar.copy(owner=newOwner)
Car.update(updatedCar)
// or
Car.updateOwner(myCar.id.get, newOwner)
我很奇怪,爲什麼UPDATE或DELETE語句都沒有的情況下類本身:
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)
這是我使用播放1做。 X使用Java和JPA。 也許原因是顯而易見的,由於我對Scala知之甚少。