【发布时间】:2015-12-11 19:52:02
【问题描述】:
这是代表整行的案例类:
case class CustomerRow(id: Long, name: String, 20 other fields ...)
我有一个形状案例类,它只“公开”列的子集,并在用户创建/更新客户时使用:
case class CustomerForm(name: String, subset of all fields ...)
我可以使用CustomerForm 进行更新。但是我不能将它用于插入。有一些不在CustomerForm 中的列是必需的(非空),只能由服务器提供。我现在要做的是从CustomerForm 创建CustomerRow:
def form2row(form: CustomerForm, id: Long, serverOnlyValue: Long, etc...) = CustomerRow(
id = id,
serverOnlyColumn = serverOnlyValue,
name = form.name.
// and so on for 20 more tedious lines of code
)
并将其用于插入。
有没有办法在 slick 中编写插入,这样我就可以删除那个乏味的 form2row 函数?
类似:
(customers.map(formShape) += form) andAlsoOnTheSameRow .map(c => (c.id, c.serverOnlyColumn)) += (id, someValue)
?
【问题讨论】: