Вот картограф для книги:
class Book extends LongKeyedMapper[Book] with IdPk with OneToMany[Long, Book] {
def getSingleton = Book
object title extends MappedString(this, 200)
object BookAuthor extends MappedOneToMany(BookAuthor, BookAuthor.id)
}
object Book extends Book with LongKeyedMetaMapper[Book]
Черта IdPk будет заботиться об идентификаторе Книги. Тогда для BookAuthor:
class BookAuthor extends LongKeyedMapper[BookAuthor] with IdPk with OneToOne[Long, BookAuthor] {
def getSingleton = BookAuthor
object Author extends MappedOneToOne(Author, Author.id)
}
object BookAuthor extends BookAuthor with LongKeyedMetaMapper[BookAuthor]
Тогда для автора, простой картограф:
class Author extends LongKeyedMapper[Author] with IdPk {
def getSingleton = Author
object name extends MappedString(this, 200)
}
object Author extends Author with LongKeyedMetaMapper[Author]
Тогда звоните, чтобы найти всех авторов книги (здесь myBook
):
myBook.BookAuthor.map(x => x.Author.name)
Если вы хотите делать более сложные запросы на присоединение без необходимости фильтровать все в Scala, вы всегда можете использовать DB , и вы всегда можете найти дополнительную информацию о mapper здесь .