나는 로그 테이블과 같은 것을 달성하려고 노력하고 있습니다.
내가 가지고 있다고하자 ...
final class LogTable(tag: Tag) extends Table[LogModel](tag,"log"){
def createdAt = column[Timestamp]("created_at")
//...
}
로그는 단일 테이블에 대해 너무 많은 레코드를 가져 오기 때문에 구조가 똑같지 만 이름이 다른 여러 테이블을 사용하고 싶습니다. 다른 말로 말하자면, 나는 변경 Table[](tag,"this name")
만하고, 가능하다면 외부에서 호출 될 때 단일 테이블처럼 작동하도록하고 싶습니다.
현재 내 구현
class LogBase(tag: Tag) extends Table[LogModel](tag,"log"){
def createdAt = column[Timestamp]("created_at")
//...
}
final class LogTable1(tag:Tag) extends LogBase(tag){
override val tableName = "log1"
}
final class LogTable2(tag:Tag) extends LogBase(tag){
override val tableName = "log2"
}
//...
필요한만큼 테이블을 작성하는 것이 마지막 옵션입니다. 현명한 방법으로이를 달성 할 수있는 방법이 있습니까?
어떤 종류의 제안이라도 감사합니다.
nmat가 언급 한 방식처럼 테이블 클래스 생성기 클래스가 문제를 해결하도록합니다.
class LogBase(tableNum: Int){
class LogTable(tag: Tag) extends Table[LogModel](tag,s"log$tableNum"){
def createdAt = column[Timestamp]("created_at")
//...
}
}
그리고 그것을 사용하는 방법
val tables = (1 to 10).toList.map { num =>
val clazz = new LogBase(num)
TableQuery[clazz.LogTable]
}
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다