Slick 3.1.1'de birden çok bağlantı gerçekleştirmeye çalışıyorum. Ben denedimScala Slick 3.1 çoklu birleştirmeler
SELECT * FROM customer LEFT JOIN customer_address ON customer.id = customer_address.customer_id LEFT JOIN address ON customer_address.address_id = address.id
aşağıdaki: Ben başarmak istiyorum sonuç şudur
val query = for {
c <- Customer
ca <- CustomerAddress if ca.customerId === c.id
a <- Address if a.id === ca.addressId
} yield (c, a)
Buradaki sorun, bir müşterinin bir adresi yoksa değil mi bu yani mantıklı olan görünür.
val query2 = for {
(c, ca, a) <- (Customer joinLeft CustomerAddress on (_.id === _.customerId)) joinLeft Address on (_._2.addressId === _.id)
} yield (c, a)
Buradaki sorun _._2
bir Rep
nesnedir çünkü _._2.addressId
bir hata alır olmasıdır:
Tam hatası: http://pastebin.com/e4M3cGU8
nasıl Slick ile istediğiniz sonuçları elde edebilirsiniz:
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)
Oto Slick Tablolar sınıfını oluşturulan?
Aldığınız hatayı lütfen ekleyebilir misiniz? –