ScalaQuery 0.9.5에서 Play 2.0.2를 사용하고 있습니다.ScalaQuery and Play 프레임 워크 : 할당되지 않은 (AutoInc) 기본 키 처리를위한 우수 사례
나는 다음과 같은 간단한 모델 코드가 있습니다
case class Task(id: Long, name: String)
object Task extends Table[(Long, String)]("task") {
lazy val database = Database.forDataSource(DB.getDataSource())
def id = column[Long]("id", O PrimaryKey, O AutoInc)
def name = column[String]("name", O NotNull)
def create(task: Task) = database.withSession {
implicit db: Session => {
Task.name insert(task.name)
}
}
및 양식 제출 처리하기위한 다음 코드를
val taskForm: Form[Task] = Form(
mapping(
"name" -> nonEmptyText
) {
(name) => Task(-1L, name)
} {
task => Some(task.name)
}
)
def newTask = Action {
implicit request =>
taskForm.bindFromRequest.fold(
errors => BadRequest(views.html.index(Task.all, errors)),
task => {
Task.create(task)
Redirect(routes.Application.tasks())
}
)
}
몇 가지 질문 :
1) 더 좋은 방법이됩니다 상수를 전달하는 것보다 일시적인 기본 키 값을 처리 할 수 있습니까? Anorm의 NotAssigned와 비슷한 것이 있습니까?
2) "id"-> ignored (-1L)를 양식 매핑에 추가하고 작업의 추출기 기능을 사용하는 것이 더 좋습니까?
3) 사례 클래스를 id 필드없이 정의해야합니까?