これは、Squeryl の仕組みについての私の誤解が原因である可能性があります。私のエンティティは次のように定義されています。
case class Wallet(userid: Int, amount: Long)
extends KeyedEntity[Int] with Optimistic {
def id = userid
}
私のテーブル変数は次のように定義されています:
val walletTable = table[Wallet]("wallets")
on(walletTable) {
w =>
declare {
w.userid is (primaryKey)
}
}
次に、ウォレットにお金を追加しようとするメソッドを呼び出しています。
val requestedWallet = wallet.copy(amount = wallet.amount + amount)
try {
inTransaction {
walletTable.update(requestedWallet)
}
update を呼び出す行で、例外がスローされます: [ClassCastException: java.lang.Integer cannot be cast to org.squeryl.dsl.CompositeKey]
私は複合キーをまったく使用していないので、これは非常に紛らわしいです。私のidフィールドが「id」ではなく「userid」と呼ばれているという事実と関係がありますか?