1
現在Playとplay-slickで遊んでいます。次のコードは私にエラー値の削除はslick.lifted.Queryのメンバーではありません。[T、T#TableElementType、Seq]
class GenericRepository(protected val dbConfigProvider: DatabaseConfigProvider) extends HasDatabaseConfigProvider[JdbcProfile] {
import driver.api._
implicit val localDateTimeColumnType = MappedColumnType.base[LocalDateTime, Timestamp](
d => Timestamp.from(d.toInstant(ZoneOffset.ofHours(0))),
d => d.toLocalDateTime
)
protected trait GenericTable {
this: Table[_] =>
def id = column[Long]("id", O.PrimaryKey, O.AutoInc)
def createdAt = column[LocalDateTime]("created_at")
def updatedAt = column[LocalDateTime]("updated_at")
}
protected class CrudRepository[T <: AbstractTable[_] with GenericRepository#GenericTable](private val tableQuery: TableQuery[T]) {
def all = db.run(tableQuery.to[List].result)
def create(obj: T#TableElementType) = db.run(tableQuery returning tableQuery.map(_.id) += obj)
def delete(id: Long) = db.run(tableQuery.filter(_.id === id).delete)
}
}
エラー得られます。
value delete is not a member of slick.lifted.Query[T,T#TableElementType,Seq]
を私はすでに多くのことをグーグルが、何の解決策は、私のために働いていません。例えば、私は 'import driver.apiを取り替えようとしました。 'with' import slick.driver.H2Driver.api。 'は運がありません。
私はScala 2.11.7をplay-slick 2.0.2とPlay 2.5で使用しています。
また、CrudRepositoryメソッドから 'Future'を返すのが理にかなっていると思います。このようなアプローチでは、トランザクション内で操作を実行することはできません。 –
お返事ありがとうございます!残念ながら、これは別のエラーを引き起こします:http://pastebin.com/k2KDemM8 明らかに、Scalaは、両方のクラスのドライバのインポートが同じであることを確認できません。 私の場合、db.runは常にFuture、btwを返します。 – Magnus
私の更新された答えを見てください - あなたのコードをコンパイルします。 –