首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >怎么想聪明?

问怎么想聪明?
EN

Stack Overflow用户
提问于 2016-05-21 10:19:56
回答 2查看 420关注 0票数 2

我在光滑方面有点挣扎,我是最近的Scala/Slick采用者。我习惯于使用Hibernate和/或Rails ActiveRecord,但我在连接许多表时遇到了一些困难。

我有下面的课堂模式。

代码语言:javascript
复制
case class User(id: UUID, ..., profile: UserProfile)
case class UserProfile(id: UUID, ..., address: Address)
case class Address(id: UUID, ...)

我试图将其作为域模型,让持久化层只需获取并加入表以返回域单个对象。

  1. 用光滑的方式做这件事是正确的吗?
  2. 是否有缓存查询结果的方法,而不是不断地查询数据库?
  3. 这个库有用吗?
  4. 例如,连接这3个表的最佳方式是什么?通过单独的DAO或内部连接对每个表进行1次查询,并使用Scala的groupBy?

如果这是个“新问题”,很抱歉。我只是想弄清楚怎么“聪明思考”。

EN

回答 2

Stack Overflow用户

发布于 2016-05-21 12:35:00

  1. 做这件事没有正确的方法。这取决于你需要对你的模型做什么..。有正确的方法来建模关系数据库模型,但您已经知道了。
  2. Slick不使用任何缓存,请参见这里。但是如果您使用Play Framework,它提供了CacheApi,但我对此没有经验或建议。但是,对于查询,您可以进行一些“缓存”,比如编译查询。
  3. 也许是的,对于简单的情况,简单的表等等,但是您也可以使用Hibernate来实现,因为Hibernate更古老、更可靠。
  4. 在我还是Scala/Slick初学者的时候,我也被它困住了,所以我写了一个关于这个的博客 (它也在Slick的第三方文件上,是的,我在吹嘘:p)。也有一个简单的配套项目。

理解普通的SQL,它的联接等,在使用灵活时非常有帮助。例如,外部联接(左/右)顺序是否重要,以及其他有趣的问题。

票数 2
EN

Stack Overflow用户

发布于 2016-05-21 10:37:35

不久前,我写了一个关于play + slick的小教程。检查它,看看它是否对http://pedrorijo.com/blog/play-slick/有帮助

我通常有:

代码语言:javascript
复制
case class CaseClassA(field1, field2, caseClassB_Id)
case class CaseClassB(field3, field4)

但也许有更好的方法

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37361612

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档