我习惯于编写SQL或使用像Active Record这样的简单数据库交互工具。 Slick有这个非常精细的功能数据库连接概念,我想了解更多,虽然刚刚开始。
我使用了play-slick,有些人告诉我使用trait DAO
(这与Scala Cake Pattern有关)。此外,据说DAO
用于放置本来写在object xxx
内的常用函数。
现在我正在尝试在DAO
中编写一个函数,该函数可以根据调用它的对象从数据库中查询数据,例如:
trait DAO extends Apple with Orange {
val apples = new Apples //Apples is a class extending Table trait inside Apple trait
val oranges = new Oranges //same above
def get() = {...//some mysterious implementation}
}
Object Apples extends DAO { //companion object of Apples class
....
}//same for Object Orange
所以现在我可以调用Apples.get()
并获取数据库中的所有苹果,但如果我调用Oranges.get()
,我可以获取数据库中的所有橙子。有没有办法做到这一点?