1

我有一个表定义

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]

没有造成任何差异。

4

1 回答 1

0

当我删除声明时

t.id is unique

有用。所以问题就解决了。

这是 squeryl 中的错误吗?

于 2012-07-30T15:45:56.500 回答