【发布时间】:2013-12-21 19:00:43
【问题描述】:
我在发布这个问题时遇到了这个问题:Slick Write a Simple Table Creation Function
我对 Slick 和并发非常陌生,只知道基础知识。我以前使用过 JDBC,但在那里你必须手动打开一个会话然后关闭它。没有什么比这更重要的了,而且几乎没有自动化(至少我不必制作自动化流程)。
但是,我对 Slick 会话感到困惑。在教程中,示例“入门”鼓励人们使用threadLocalSession:
// 使用隐式threadLocalSession
导入 Database.threadLocalSession
http://slick.typesafe.com/doc/1.0.0/gettingstarted.html
原来的推荐是:
我们使用的唯一额外导入是 threadLocalSession。这 通过将会话附加到当前会话来简化会话处理 线程,因此您不必自己传递它(或至少 将其分配给隐式变量)。
嗯,我在网上研究了一下,有人建议不要使用threadLocalSession,只使用隐式会话。有人建议使用 threadLocalSession。
支持隐式会话的一个原因是“确保在编译时你有一个会话”。好吧,我只有两个问题:
当人们使用“线程”时,他们指的是并发吗? Slick/JDBC 数据存储是通过并发处理的?
哪种方式更好?隐式还是线程本地会话?或者什么时候用哪个?
如果要问的不是太多,我在我的 Scala 书籍的某处读到了
{implicit session:Session => ...}的语法,但我忘记了它在哪里。这是什么表达方式?
【问题讨论】:
标签: scala playframework playframework-2.0 slick