Это класс case, представляющий всю строку:
case class CustomerRow(id: Long, name: String, 20 other fields ...)
У меня есть класс формы, который «открывает» только подмножество столбцов и используется, когда пользователь создает/обновляет клиента:
case class CustomerForm(name: String, subset of all fields ...)
Я могу использовать CustomerForm
для обновлений. Однако я не могу использовать его для вставок. Есть некоторые столбцы, которых нет в CustomerForm
, но они обязательны (не нулевые) и могут быть предоставлены только сервером. Теперь я создаю CustomerRow
из CustomerForm
:
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)
?