Как добавить сущность в отношение многие ко многим в Slick - PullRequest
0 голосов
/ 29 мая 2020

У меня есть следующая таблица, определенная в Slick, она соединяет две сущности по идентификатору, поэтому она состоит из двух идентификаторов, которые вместе образуют первичный ключ. Я не знаю, как добавить новое значение в таблицу.

trait CaptionNounComponent extends CaptionComponent with NounComponent {
  self: HasDatabaseConfigProvider[JdbcProfile] =>

  import profile.api._

  class CaptionNounTable(tag: Tag) extends Table[CaptionNoun](tag, "caption_noun") {

    def * : ProvenShape[CaptionNoun] = (captionId, nounId) <> ((CaptionNoun.apply _).tupled, CaptionNoun.unapply)

    def nounId: Rep[Int] = column[Int]("NOUN_ID")

    def captionId: Rep[Int] = column[Int]("CAPTION_ID")

    def pk = primaryKey("primaryKey", (captionId, nounId))

    def nounFK =
      foreignKey("noun_fk", nounId, TableQuery[NounTable])(_.id)

    def captionFK =
      foreignKey("caption_fk", captionId, TableQuery[CaptionTable])(_.id)
  }
}

Обычно я бы попробовал что-то вроде:

private val keyTable = TableQuery[CaptionNounTable]

  def addKeys(keys: CaptionNoun): Future[Int] = db.run {
    (keyTable returning keyTable.map(_.pk)) += keys
  }

, но в этом случае это не работает

1 Ответ

1 голос
/ 29 мая 2020

Я забыл импортировать

  import profile.api._

Кажется, проблема решена

...