我有一个包含这些列的events
表
_________________________
|___name_____|___time_____|
| | |
|____________|____________|
时间列的值是在创建时使用当前日期自动生成的。
同样,我有这个案例类来表示表中的一行。
case class Event(name: String, time: Option[java.sql.Date] = None)
现在,问题在于当我尝试使用
插入事件时val event = Event("blah blah blah")
events += event
Slick实际上插入的是('blah blah blah', null)
,而不仅仅是('blah blah blah')
,这使得时间字段为null
。
如果我将时间列的约束设置为NOT NULL
,那么尝试插入null
时会出错。
当然我可以分解我的event
对象并执行插入,但我想知道是否有一种映射告诉Slick这个列是自动生成的,就像自动增量一样id列:
def id = column[Long]("id", O.AutoInc)
所以我尝试设置时间列如下
def time = column[java.sql.Date]("time", O.AutoInc)
它似乎有效。
AutoInc
的文档指出它用于auto increment
和auto generated
列。
虽然我不确定这是否是正确的方法。