问题标签 [play-slick]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
playframework - 如何在开发中使用带有 H2 和 MySQL 兼容模式的 play-slick,以及在生产中使用 MySQL?
我已经开始使用play-slick并且想知道以下是否可行。在开发中我想在 MySQL 兼容模式下使用 H2,在生产中使用 MySQL。
但是,我认为这对我在开发中不起作用,因为 play-slick 使用基于当前配置数据库的 Slick 驱动程序。这是 H2,所以 slick 生成 H2 风格的 SQL,在 MySQL 兼容模式下失败,因为属性和表名的引用不同。
scala - Play slick and Async - 这是一种竞争条件吗?
阅读Play-Slick DBAction 代码,我认为此代码可能包含竞争条件:
该函数r
在未来某个时间运行,在withSession
返回一个 Future[Result] 之后,并调用session.close()
. 此代码中是否存在竞争条件?
scala - Play slick 应用程序 - 连接泄漏
我在 play 2.1.3 应用程序中使用 play-slick。
这是插入记录的代码
上面的代码正在泄漏连接,应用程序在 30 多个请求后抛出以下错误
报告了类似的问题,但此代码略有不同。
任何想法?
scala - 使用 Scala Play 和 Slick,我如何将重要的关系传递给视图
我正在考虑使用 Play 构建应用程序。想象一个典型的电子商务领域模型:客户、订单、订单行项目、产品。
在研究持久性的各种选项时,建议似乎是避免在 Scala 中使用 ORM 层并使用不同的抽象,例如 Slick。
我卡住的地方是,使用 ORM,我可以将单个“订单”对象传递给我的视图,然后它可以使用现有关系从客户、订单行和产品中提取相关信息。使用 Slick,我目前正在将 (Order, Customer, Seq[(OrderLine, Product)]) 的元组传递给视图以提供相同的信息。如果您开始使模型更加复杂,例如在客户对象上使用地址,它很快就会变得非常混乱。
这是推荐的方法还是我错过了什么?我找到了几个 Play-Slick 示例应用程序,但它们只有 1 或 2 个实体,因此它们并没有真正解决我在这里提出的问题。
scala - 配置 play-slick 和示例
我目前正在尝试使用Play! Framework 2.2
和play-slick
(主分支)。在 play-slick 代码中,我想覆盖驱动程序定义以添加 Oracle 驱动程序(我正在使用 slick-extension)。在我刚刚看到的 play-slick 的 Config.Scala 中/** Extend this to add driver or change driver mapping */
...
我来自很远的地方(目前正在阅读 Scala 编程),所以有很多东西要学。所以我的问题是:
- 有人可以解释一下如何扩展这个 Config 对象吗?这个对象在其他类中使用... cake apttern 在这里有用吗?
- 说到蛋糕模式,我阅读了 play-slick 提供的计算机数据库示例。此示例使用蛋糕模式,
import play.api.db.slick.Config.driver.simple._
如果我使用 Oracle 驱动程序,我不能使用此导入,我错了吗?如何使用蛋糕模式来定义隐式会话?
非常感谢。等待你的建议,我还在家里研究 play-slick 代码:)
scala - 使用预定的 Akka Runnable 调用 Controller DBAction(在 Scala / Play 2.2 中)
我正在尝试在我的 Play 2.2 应用程序启动时安排 Akka 作业。
在最简单的形式中,这就是我的代码的样子:
如您所见,我正在创建一个新Runnable
的,将在应用程序启动后 1 分钟执行。Logger.info("Running the thing!")
执行得很好......我可以看到“正在运行的东西!” 在启动服务器 1 分钟后的应用程序日志中。但是,controllers.Application.runTheThing
似乎没有被调用:
我的“它正在发生!” log 语句永远不会出现,DBThing.doSomeDBStuff()
应该做的事情永远不会发生。奇怪的是控制台或日志文件中没有错误。
应该如何从计划的可运行对象中调用控制器 DBAction?或者我应该如何重新设计我的调度程序以使其正常工作?任何帮助将不胜感激,谢谢。
scala - 使用 SecureSocial 玩游戏:在单独的线程池中运行 DB IO
我有一个 Play 2.2.1 应用程序,它使用play-slick 0.5.0.8将数据保存到 Postgresql 后端,并使用SecureSocial 2.1.2来处理用户授权。
由于 play-slick 事务被阻塞,我根据插件 Wiki 中的说明在我的文件中创建了一个单独的slick-context
执行上下文:/conf/application.conf
这允许我创建一个在单独的执行上下文中运行并且不会阻塞默认线程池中的线程的控制器操作。例如。/app/controllers/Application.scala
:
示例一 - 使用 play-slick 的 DBAction:
对于某些控制器操作,我希望能够将 SecureSocial 的操作(SecuredAction
等UserAwareAction
)与 play-slick 结合使用DBAction
。将两者结合起来的最佳方法是什么?
我意识到我可以做类似下面的事情,但我的理解是 DB 调用不会使用我单独slick-context
的,因此会阻塞默认线程池:
示例二 - 使用 SecureSocial 的操作:
假设示例二将使用/阻止默认线程池而不是我的单独slick-context
线程池,我是否正确?如果是这样,有没有办法改变这种情况?
我显然可以通过增加 Play 的默认线程default-dispatcher
池(
协助表示赞赏!
scala - 是否可以在 Slick 中自动推断结果类型?
假设我有这个方法,它使用 Slick 的普通 SQL 运行一个相当基本的查询:
如果我从具有超过 100 列的同一个表中获得不同的查询怎么办:
在这种情况下,将有大量关于这两行的输入:
是否可以在不手动映射 100 列的情况下以某种方式自动化这两行?自动推断类型或者即使每一列都作为字符串类型返回也是一个不错的选择。
如果需要具体说明,我的堆栈是 Play Framework 2.2.1、Scala 2.10.3、Java 8 64Bit、PostgreSQL 9.3