0

我有一个模型,如下所示。

case class House (
    id: Int,
    name: String,
    cityId: Int,
    leaseInterval: Interval
)

case class Interval(start: ZonedDateTime, end: ZonedDateTime)

我的表定义如下所示。

CREATE TABLE houses(
  id INT AUTO_INCREMENT NOT NULL PRIMARY KEY ,
  name VARCHAR(255),
  city_id INT NOT NULL,
  start_at datetime DEFAULT NULL,
  end_at datetime DEFAULT NULL,
);

我正在尝试编写一种在 MySQL 数据库中保存房屋的方法,如下所示。

val c = House.column
val id = sql"insert into ${House.table} (${c.name}, ${c.cityId}, ${c.startAt}, ${c.endAt}) values (${name}, ${cityId}, ${startAt}, ${endAt})".stripMargin.updateAndReturnGeneratedKey.apply()

但我收到以下编译错误。

House#startAt not found. Expected fields are #id, #name, #cityId, #leaseInterval.

我也得到了同样的c.endAt列错误。

难道我做错了什么?如果我使用c.column("start_at").

4

1 回答 1

0

似乎你的房子班级和房子桌子之间的不匹配可能是它的原因。您还需要 Interval 中的列,或者将 startAt 和 endAt 放在您的 House 类中。

于 2017-11-22T15:30:53.607 回答