У меня есть определение Scala, которое берет параметры из HTTP POST и анализирует данные. Я извлекаю объект «задание» из базы данных (запрос был успешным, что подтверждено в отладчике, и параметры соответствуют требованиям), и я пытаюсь обновить этот объект задания новыми параметрами. Однако попытки присвоить значения оказываются бесполезными, поскольку объект задания сохраняет все исходные значения.
Все объекты базы данных от Squeryl. Код ниже:
Редактировать: добавлен класс ниже и объект задания, чтобы помочь создать контекст в этой игре! Приложение
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
, то я получаю ошибку Scala reassignment to val
. Я получаю ту же ошибку при попытке var name
вместо val name
.
Это, очевидно, проблема с синтаксисом с моей стороны, какой правильный способ справиться с этим? Спасибо!
Дополнительная информация: Если это поможет, вот класс Job, используемый в нашей игре! Приложение:
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] {
}