HTTP POST에서 매개 변수를 가져 와서 데이터를 구문 분석하는 Scala def가 있습니다. 데이터베이스에서 "작업"개체를 가져오고 있습니다 (쿼리가 디버거에서 확인 된대로 성공적으로 수행되었으며 매개 변수가 필요합니다). 새 매개 변수로 해당 작업 개체를 업데이트하려고합니다. 그러나 작업 객체가 모든 원래 값을 유지하므로 값을 할당하려고하면 쓸모가 없습니다.스칼라에서 객체의 값을 올바르게 설정하는 방법은 무엇입니까?
모든 데이터베이스 개체는 Squeryl에서 가져온 것입니다. 아래 코드 :
편집 : 아래 클래스를 추가하고이 Play에서 컨텍스트를 제공하는 데 도움이되는 Job 개체! 응용 프로그램
object Job {
def updateFromParams(params:Params) = {
val job = Job.get(params.get("job_id").toLong).get
val comments = params.get("comments")
val startTime = parseDateTime(params.get("start_time") + " " + params.get("date"))
val endTime = parseDateTime(params.get("end_time") + " " + params.get("date"))
val clientId = params.get("client_id").toLong
val client = Client.get(clientId).get
val name = params.get("job_name")
val startAddressType = params.get("start_address_type")
var startLocationId:Option[Long] = None
val (startAddress, startCity, startProvince) = startAddressType match {
case "client" => getClientAddress(clientId)
case "custom" => (params.get("start_custom_address"),
params.get("start_custom_city"),
params.get("start_custom_province"))
case id => {
startLocationId = Some(id.toLong)
getLocationAddress(startLocationId.get)
}
}
job.comments -> comments
job.startTime -> startTime
job.endTime -> endTime
job.clientId -> clientId
job.name -> name
job.startAddressType -> startAddressType
job.startAddress -> startAddress
job.startCity -> startCity
job.startProvince -> startProvince
Job.update(job)
}
}
내가 job.name -> name
아무 일도 발생하지하려고하면 나는 때문에 난처한 상황에 빠진 그리고 난 다음 job.name = name
을하려고하면 나는 스칼라 reassignment to val
오류가 발생합니다. val name
대신 var name
을 시도 할 때도 같은 오류가 발생합니다.
분명히 내 부분에 구문 문제가 있습니다.이 문제를 처리하는 적절한 방법은 무엇입니까? 감사!
추가 정보 : 이것이 도움이된다면, 여기에 우리의 놀이에 사용되는 직업 수업이 있습니다! 응용 프로그램 : 당신이 job.name = name
으로 그 값을 변경할 수 있도록
class Job(
val id: Long,
@Column("name")
val name: String,
@Column("end_time")
val endTime: Timestamp,
@Column("start_time")
val startTime: Timestamp,
@Column("client_id")
val clientId: Long,
@Column("start_address_type")
var startAddressType:String,
@Column("start_address")
var startAddress: String,
/* LOTS MORE LIKE THIS */
) extends KeyedEntity[Long] {
}
'x -> y'는 튜플'(x, y)'를 생성합니다. 그것은 대입 연산자가 아닙니다. '직업 '이란 무엇입니까? – leedm777
'var name'으로 변경한다고 할 때,이 코드 나'Job'의 정의를 의미합니까? –
'작업 (Job)'은 클래스와 모델입니다. 뼈대. 위의 질문에 수업을 추가하겠습니다. :) – crockpotveggies