Tôi đang tìm các phương pháp hay nhất liên quan đến các mô hình và cách để tồn tại các đối tượng trong cơ sở dữ liệu với phiên bản 2.0. Tôi đã nghiên cứu các mẫu Play và typesafe để chơi 2.0 bằng scala.Chơi các mô hình thực hành tốt nhất 2.0 mô hình
Những gì tôi hiểu là:
- mô hình được định nghĩa trong một lớp trường hợp
- Tất cả các chèn/cập nhật/xóa/chọn được định nghĩa trong đối tượng đồng hành của lớp trường hợp này
Vì vậy, nếu tôi cần cập nhật đối tượng Ô tô của mình để xác định chủ sở hữu mới, tôi sẽ phải làm:
val updatedCar = myCar.copy(owner=newOwner)
Car.update(updatedCar)
// or
Car.updateOwner(myCar.id.get, newOwner)
Tôi tự hỏi tại sao các bản cập nhật hoặc xóa báo cáo không phải là trong lớp trường hợp riêng của mình:
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)
}
}
Làm như vậy sẽ cho phép để làm:
val updatedCar = myCar.updateOwner(newOwner)
Đó là những gì tôi đã từng làm với Play 1. X sử dụng Java và JPA. Có lẽ lý do là hiển nhiên và do kiến thức nhỏ của tôi về Scala.