1
현재 Play and 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. '행운을 빈다.
저는 스칼라 2.11.7과 play-slick 2.0.2 및 Play 2.5를 사용하고 있습니다.
또한 CrudRepository 메소드에서'Future'를 반환하는 것이 합리적이라고 생각할 수도 있습니다. 이러한 접근 방식으로는 거래 내에서 작업을 수행 할 수 없습니다. –
안녕하세요, 답변 해 주셔서 감사합니다. 불행히도이 결과는 또 다른 오류가 발생합니다 : http://pastebin.com/k2KDemM8 분명히 스칼라는 두 클래스의 드라이버 가져 오기가 동일하다는 것을 알 수 없습니다. db.run은 항상 Future, btw를 반환합니다. – Magnus
업데이트 된 답변을 살펴보십시오. 코드가 컴파일됩니다. –