【发布时间】:2019-08-31 01:21:04
【问题描述】:
我在光滑的抽象表中做了:
abstract class SubResourceTabledef[E, A, I, U](tag: Tag, name: String) extends Table[E](tag, name) {
val id = column[Long]("id", O.PrimaryKey, O.AutoInc)
val version = column[Long]("version", O.Default(0L))
val resource_id = column[Long]("resource_id")
def * : ProvenShape[E]
def allMapped: MappedProjection[E, A]
def insertMapped: MappedProjection[E, I]
def updateMapped: MappedProjection[E, U]
}
所以稍后我可以基于此创建:
type EntityType = SomeThingResource
type AllProjectionTuple = (Option[Long], Option[Long], DateTime, Option[Long], Option[Long], Option[Long], Long)
type InsertProjectionTuple = (Option[Long], Option[Long], Option[Long], Long)
type UpdateProjectionTuple = (Long, Option[Long], Option[Long], Option[Long])
class SomeThingResourceTabledef(tag: Tag) extends SubResourceTabledef[SomeThingResource, AllProjectionTuple, InsertProjectionTuple, UpdateProjectionTuple](tag, tablenameConverter("Table_name")) {
val a = column[Option[Long]]("a")
val b = column[Option[Long]]("b")
val c = column[Option[Long]]("c")
...
}
我可以这样创建 TableQuery:
object TQDomain extends TableQuery(new ArticleGoodsMovementTabledef(_))
但是我不知道如何将它传递到我的存储库,在那里我进行所有查询:
class SubResourceCommonRepository[Entity <: SubResource, A, I, U, TableDef <: SubResourceTabledef[Entity, A, I, U]](subResourceTabledef: TableDef)
任何想法如何处理它? 谢谢!
【问题讨论】: