ho una definizione Slick 3.0 tabella simile al seguente:colonne quotazione in un tavolo Slick
case class Simple(a: String, b: Int, c: Option[String])
trait Tables { this: JdbcDriver =>
import api._
class Simples(tag: Tag) extends Table[Simple](tag, "simples") {
def a = column[String]("a")
def b = column[Int]("b")
def c = column[Option[String]]("c")
def * = (a, b, c) <> (Simple.tupled, Simple.unapply)
}
lazy val simples = TableQuery[Simples]
}
object DB extends Tables with MyJdbcDriver
Vorrei essere in grado di fare 2 cose:
- ottenere un elenco dei nome colonna come
Seq[String]
- Per un'istanza di
Simple
, generare unSeq[String]
che corrisponderebbe a come i dati verrebbero inseriti nel database utilizzando una query non elaborata (ad esempioSimple("hello", 1, None)
diventaSeq("'hello'", "1", "NULL")
)
Quale sarebbe il modo migliore per farlo utilizzando la definizione della tabella Slick?
Grazie per la comprensione di 'simples.baseTableRow.create _ *. Map (_. Name) .toSeq'. È bene sapere che ritorna nell'ordine della proiezione. Penso che questo risponda completamente alla domanda (e l'ho scelta come risposta). Tuttavia, non penso che 'productIterator' funzioni se ho definito il mapping' <> 'utilizzando le funzioni personalizzate. Idealmente, vorrei essere in grado di mappare direttamente per convertire 'aSimple' in un' Seq [String] ' –