HTTP POST からパラメーターを取得してデータを解析する Scala def があります。データベースから「ジョブ」オブジェクトを取得しています (デバッガーで検証されたクエリは成功し、パラメーターは必要なとおりです)。そのジョブ オブジェクトを新しいパラメーターで更新しようとしています。ただし、ジョブ オブジェクトは元の値をすべて保持するため、値を割り当てようとしても無駄です。
すべてのデータベース オブジェクトは Squeryl のものです。以下のコード:
編集:以下のクラスと Job オブジェクトを追加して、この Play でコンテキストを提供するのに役立ちます! アプリ
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
Scalareassignment to val
エラーが発生するので困惑しています。var name
の代わりに試してみると、同じエラーが発生しますval name
。
これは明らかに私の側の構文の問題です。これを処理する適切な方法は何ですか? ありがとう!
詳細情報:これが役立つ場合は、Play で使用される 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] {
}