Scala 如何思维圆滑?
我在Slick中有点挣扎,我是Scala/Slick的最新采用者。我习惯于休眠和/或Rails ActiveRecord,但我在加入大量表时有点困难 我有以下的课堂模式Scala 如何思维圆滑?,scala,slick,slick-3.0,Scala,Slick,Slick 3.0,我在Slick中有点挣扎,我是Scala/Slick的最新采用者。我习惯于休眠和/或Rails ActiveRecord,但我在加入大量表时有点困难 我有以下的课堂模式 case class User(id: UUID, ..., profile: UserProfile) case class UserProfile(id: UUID, ..., address: Address) case class Address(id: UUID, ...) 我试图将其作为一个域模型,让持久性层只获取
case class User(id: UUID, ..., profile: UserProfile)
case class UserProfile(id: UUID, ..., address: Address)
case class Address(id: UUID, ...)
我试图将其作为一个域模型,让持久性层只获取并连接表以返回一个域单个对象
抱歉,如果这是一个“新手”问题。我只是想弄清楚如何“思维圆滑”。不久前我写了一篇关于play+Slick的小教程。检查一下,看看是否有帮助 我通常有:
case class CaseClassA(field1, field2, caseClassB_Id)
case class CaseClassB(field3, field4)
但也许有更好的方法
例如,外部连接(左/右)顺序是否重要,以及其他有趣的问题。问题是,我不想在我的域类中有Id。我尝试使用Hibernate样式是的,但Hibernate是一种ORM,而“Slick是Scala的现代数据库查询和访问库”。。尽管如此,如果有人能建议一种更好的方法来引用光滑案例类中的其他域类,我很乐意知道。知道了。还有一件事。加入这些表的最佳方式是什么。多个查询,或加入表和内存中的groupBy?我试图实现的目标是在我开发的所有应用程序中实现这一点,我有一个域层,使我的业务/域模型不受影响,其中我有DAO或Repo接口,这些接口由数据访问层实现,将与数据库交互,这不应该是一个问题,您只需将DAO注入您的服务(业务/域层)。但这是另一个不太重视Slick本身的问题。此外,如果您有在文件中分隔的Slick表,您可以使用Scala的self类型从DAO注入驱动程序,然后您可以简单地切换(例如从MySQL切换到H2),就像在这个playsick中一样。