Я прочитал это сообщение SO: Play 2.4 - Slick 3.0 .0 - УДАЛИТЬ не работает
но, похоже, в моем случае это не работает.
Мне удается вставить или получить данные из моей PostgreSQL (9.1)
базы данных в моем Play! 2.4
приложении, но мне не удается выполнить некоторые удаления.
Вот очень простой код моего контроллера:
package controllers
import javax.inject.Inject
import play.api.db.slick.DatabaseConfigProvider
import play.api.mvc._
import slick.driver.JdbcProfile
import scala.concurrent.ExecutionContext.Implicits.global
import scala.concurrent.Future
import slick.driver.PostgresDriver.api._
import models.Address
class Application @Inject()(dbConfigProvider: DatabaseConfigProvider) extends Controller {
val dbConfig = dbConfigProvider.get[JdbcProfile]
import dbConfig._
import dbConfig.driver.api._
def index = Action.async {
db.run(addresses.filter(_.id === 1L).delete) map { res =>
Ok(Json.toJson(res))
}
}
}
и моя модель Address
:
case class Address(id: Option[Long], city: String)
object Address {
class Addresses(tag: Tag) extends Table[Address](tag, "addresses") {
def id = column[Long]("addressid", O.PrimaryKey, O.AutoInc)
def city = column[String]("city")
def * = (id.?, city) <>
((Address.apply _).tupled, Address.unapply)
}
lazy val addresses = TableQuery[Addresses]
}
Я получаю ошибку компиляции: value delete is not a member of slick.lifted.Query[models.Address.Addresses,models.Address.Addresses#TableElementType,Seq]
Я подозреваю, что это происходит из-за импорта, но я много чего пробовал без каких-либо улучшений.