Added more join examples

This commit is contained in:
nova 2020-06-03 21:45:50 +05:30
parent a960f43cb6
commit 325f03a2c7

View File

@ -95,11 +95,27 @@ class SlickLibraryDbio extends Tables {
author <- Authors filter (_.id === authorId)
} yield (author, book)
// lazy val authorOfBook3 = (bookId: Long) =>
// for {
// authorId <- bookById(bookId).map(_.map(_.authorId))
// (authors) <- Authors filter (_.id === authorId)
// } yield (authors)
lazy val authorOfBook3 = (bookId: Long) =>
for {
(author, book) <- Authors join
Books on (_.id === _.authorId) filter {
case (authors, books) => books.id === bookId
} map {
case (authors, books) =>
(authors.id, authors.name).mapTo[Author] -> (
books.title,
books.authorId,
books.createdAt
).mapTo[BookDTO]
}
} yield (author, book)
lazy val authorOfBook4 = (bookId: Long) =>
for {
book <- Books
author <- book.authorsFk
} yield (author, book)
}
case class BookWithoutId(title: String, authorId: Long)
// def test() = {