私は、HTTP POSTからパラメータを受け取り、データを解析するScala defを持っています。私はデータベースから "ジョブ"オブジェクトを取得しています(クエリはデバッガで検証され、パラメータは必要なだけです)、新しいパラメータでそのジョブオブジェクトを更新しようとしています。しかし、ジョブオブジェクトがすべての元の値を保持しているため、値を割り当てようとすると役に立たないことがわかります。Scalaでオブジェクトの値を正しく設定する方法は?
すべてのデータベースオブジェクトは、Squerylからのものです。以下のコード:
編集:以下のクラスを追加し、このPlayでコンテキストを与えるのに役立つJobオブジェクト!私がしようとした場合job.name -> name
何も起こりませんし、私はjob.name = name
を試みるならば、私はスカラ座reassignment to val
エラーを取得するためのアプリ
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)
}
}
は私が困惑します。 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