我有一个表格定义
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]
没有任何差异。
答案 0 :(得分:0)
当我删除声明时
t.id is unique
它有效。所以问题就解决了。
这是squeryl的错误吗?