私は、演劇2.0でデータベース内のオブジェクトを永続化するためのモデルと方法に関するベストプラクティスを探しています。私は、Play 2.0とscalaを使ってタイプセーフなサンプルを研究しました。Play 2.0モデルのベストプラクティス
私が理解することです:
- モデルは、このケースクラスのコンパニオンオブジェクトで定義されている選択/削除/ケースクラス
- すべての挿入/更新で定義されている
私が行う必要があります:
val updatedCar = myCar.copy(owner=newOwner)
Car.update(updatedCar)
// or
Car.updateOwner(myCar.id.get, newOwner)
は、更新または削除ステートメントはケースクラス自体に含まれていない理由を私は疑問に思って:
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の知識が少ないためです。