既定では、SlickはO.AutoInc
フラグの列の値を無視し、挿入操作中にデータベースにその値を入力させます。SlickでAutoInc列の値を明示的に指定する方法
しかし、時々私は自動インクリメントの列にいくつかの特定の値を挿入する必要があり、Slickはそれを無視します。それを行う方法はありますか?
私は知っている、私はO.AutoInc
フラグなしで2番目のテーブルの定義を行うことができますが、私はそれをよりエレガントな方法を探しています。
アップデート:ここに は、私の場合クラスとテーブル定義です:
case class Transaction (id: Long, timestamp: LocalDateTime, comment: Option[String])
class Transactions(tag: Tag) extends Table[Transaction](tag, "tx") {
implicit val localDTtoDate = MappedColumnType.base[LocalDateTime, Timestamp] (
l => Timestamp.valueOf(l),
d => d.toLocalDateTime
)
def id = column[Long]("id", O.PrimaryKey, O.AutoInc)
def timestamp = column[LocalDateTime]("ts")
def comment = column[Option[String]]("comment")
def * = (id, timestamp, comment) <> ((Transaction.apply _).tupled, Transaction.unapply)
}
をあなたの '*' -PROJECTIONはIDを使用する場合は、これを行うことができますカラム。あなたのテーブル定義をコピー・ペーストできますか? – jkinkead
@jkinkead – akashihi