scalaquery/slick を使用して 1:n の関係を表す 2 つのテーブルに行を挿入したいと考えています。
テーブルは次のように定義されます。
object CompanyBaseTable extends Table[CompanyBaseTableEntry]("company") {
def id = column[Int]("id", O PrimaryKey, O AutoInc)
}
object ProductCatalogueTable extends Table[ProductCatalogueEntry]("product_catalogue") {
def cid = column[Int]("id", O NotNull)
def pid = column[Long]("pid", O NotNull)
def company = foreignKey("company_fk", cid, CompanyBaseTable)(_.id)
}
1 つのトランザクション内に 1:n の関係を挿入したいのですが、ScalaQuery を使用してそれを実現する方法がわかりません。JDBC 3 では、ステートメントから生成された ID を取得できますが、ScalaQuery API でステートメントが公開されている場所がわかりません。また、この情報に直接アクセスする方法もわかりません。