|
|
@ -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() = { |
|
|
|