Browse Source

Added more join examples

master
nova 4 years ago
parent
commit
325f03a2c7
  1. 26
      modules/slick/src/main/scala/com/example/user/slick/dbios/SlickLibraryDbio.scala

26
modules/slick/src/main/scala/com/example/user/slick/dbios/SlickLibraryDbio.scala

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

Loading…
Cancel
Save