テーブルがあるとしましょう:
object Suppliers extends Table[(Int, String, String, String)]("SUPPLIERS") {
def id = column[Int]("SUP_ID", O.PrimaryKey)
def name = column[String]("SUP_NAME")
def state = column[String]("STATE")
def zip = column[String]("ZIP")
def * = id ~ name ~ state ~ zip
}
テーブルのデータベース名
テーブルのデータベース名には次のようにアクセスできます:Suppliers.tableName
これはAbstractTable の Scaladoc でサポートされています。
たとえば、上記のテーブルのデータベース名は「SUPPLIERS」です。
列のデータベース名
AbstractTableを調べて、有望getLinearizedNodes
に見えました。indexes
ただし、文字列表現に列名はありません。
* は「私が通常関心のあるすべての列」を意味すると思います。 次のシグネチャを持つ*
MappedProjectionです。
final case class MappedProjection[T, P <: Product](
child: Node,
f: (P) ⇒ T,
g: (T) ⇒ Option[P])(proj: Projection[P])
extends ColumnBase[T] with UnaryNode with Product with Serializable
*.getLinearizedNodes
には膨大な数のシーケンスが含まれており、この時点で、ストリング内の列名を検索するために、API 内のすべてを力ずくで検査しているだけであることに気付きました。
以前にこの問題に遭遇した人はいますか、または MappedProjection がどのように機能するかをよりよく理解できる人はいますか?