Slick 3.1.1で複数の結合を実行しようとしています。私は次のことを試してみましたScala Slick 3.1複数の結合
SELECT * FROM customer LEFT JOIN customer_address ON customer.id = customer_address.customer_id LEFT JOIN address ON customer_address.address_id = address.id
:
val query = for {
c <- Customer
ca <- CustomerAddress if ca.customerId === c.id
a <- Address if a.id === ca.addressId
} yield (c, a)
ここでの問題は、顧客はそれがないアドレスを持っていない場合ということで、私が達成したい結果がこれですそれは意味をなさない。
は、その後、私はこれを試してみました:
val query2 = for {
(c, ca, a) <- (Customer joinLeft CustomerAddress on (_.id === _.customerId)) joinLeft Address on (_._2.addressId === _.id)
} yield (c, a)
ここでの問題は_._2
がRep
オブジェクトであるので、私は_._2.addressId
上のエラーを取得していることです。
正確なエラー:
Error:(21, 110) value addressId is not a member of slick.lifted.Rep[Option[Models.Tables.CustomerAddress]]
(c, ca, a) <- (Customer joinLeft CustomerAddress on (_.id === _.customerId)) joinLeft Address on (_._2.addressId === _.id)
自動スリックテーブルクラスを生成: http://pastebin.com/e4M3cGU8
をどのように私はスリックで望む結果を得ることができますか?
エラーを追加してください。 –