テーブル定義があります
class Transaction(
val ...
) extends KeyedEntity[Long] {
val id:Long = 0
}
val transaction = table[Transaction]("transactions")
on(transaction) {t =>
declare(
t.id is unique
... (other fields)
)
}
データベース テーブルは Squeryl によって生成されたものではありません (手動で作成しました) が、「ID」列は PrimaryKey と AutoIncrement に設定されています。
今、このテーブルに行を挿入しています:
val row = new Transaction(...)
val rowResult = transaction.insert(row)
println("Id1="+row.id+"; Id2="+rowResult.id)
行はデータベースに正しく挿入され、そこで ID が割り当てられます (!=0)。しかし、アプリケーションはコマンド ラインに "ID1=0; ID2=0" を出力します。
なんで?また、割り当てられた ID を取得するにはどうすればよいですか?
編集: この方法でテーブル定義も試しました
class Transaction(
val id: Long,
...
) extends KeyedEntity[Long]
違いはありませんでした。