我有一个表定义
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]
没有造成任何差异。