如何将Scala Squeryl ORB与play 2.0框架集成?

2023-11-26

我正在尝试将 Squeryl ORB 与 play 2.0 框架一起使用,但是在调用时DB.getConnection()在初始化期间我得到:

BadPath:路径参数:无效路径' - 找不到defaultdb的数据源':路径表达式中不允许使用令牌:'-'(如果您确实需要,可以在此处双引号该令牌)

数据库配置如下所示(conf/application.conf):

db.default.url="jdbc:postgresql://localhost/mydb?user=postgres&password=postgres"
db.default.driver=org.postgresql.Driver
db.default.jndiName=defaultdb

以及初始化:

object Global extends GlobalSettings {
  override def onStart(app: Application) {

    SessionFactory.externalTransactionManagementAdapter = Some(() => 
        Some(new Session(
          DB.getConnection("defaultdb", true),
          new PostgreSqlAdapter)))
    ...

这是正确的做法吗?使用是否正确db.default.jndiName配置值作为参数值DB.getConnection()?

或者应该这样做?:

  SessionFactory.concreteFactory = Some(() =>
    Session.create(
      java.sql.DriverManager.getConnection("jdbc:postgresql://..."),
      new PostgreSqlAdapter))

这是可行的,但是我无法在模板中使用 squeryl 查询对象进行迭代,我希望这可以通过externalTransactionManagementAdapter.

Update:

我更正如下:DB.getConnection("default", true)并删除了db.default.jndiName配置。 这样我就能够获得并使用连接,但是第二次getConnection()被调用,它抛出SQLException: Timed out waiting for a free available connection.

更新2:

我还没成功使用过externalTransactionManagementAdapter, but concreteFactory效果很好 - 如下所述。


接下来对我有用:

import play.db.DB 
import play.api.Application 
import play.api.GlobalSettings 
import org.squeryl._ 
import org.squeryl.adapters._ 

....

object Global extends GlobalSettings
{

override def onStart(app:Application):Unit =
{
 SessionFactory.concreteFactory = Some(
      () => Session.create(DB.getDataSource().getConnection(),
                           dbAdapter)
 );
}

override def onStop(app:Application):Unit =
{
}

val dbAdapter = new PostgreSqlAdapter();

}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何将Scala Squeryl ORB与play 2.0框架集成? 的相关文章

随机推荐

  • .npmrc 配置文件不读取环境变量来下载私有节点模块

    当我将身份验证令牌硬编码到 npmrc 文件中时 私有模块将按预期安装 当我用环境变量替换硬编码令牌时 私有模块无法安装 由于以下资源 我尝试了多种编写变量名称以及 npmrc 文件中变量的语法的方法 npm config关于环境变量的文档
  • 确定 SQL Server 视图中引用的表

    如何了解 SQL Server 视图中使用的表 是否有脚本或工具可以让我知道视图中使用的表并且还可以列出字段 希望这能解决这个问题 如果没有请告诉我 请指导 谢谢 select cols from sys sql expression de
  • 计算二项式系数的递归算法的时间复杂度

    我正在研究算法复杂性分析 我有不合格问题或C n k int C int n int k if n k k 0 return 1 return C n 1 k C n 1 k 1 我如何确定其执行复杂度或T n 您正在寻找的复发是 T n
  • 打开由竖线字符“|”分隔的 csv 文件或不常见的分隔符

    我正在尝试设置一个 Excel VBA 代码来打开一些 csv 文件并将包含的信息拆分为由字符分隔的列 我设法打开文件 但我使用的代码打开文件时没有根据分隔符分割文本 到目前为止我已经尝试过以下代码 Sub OpenCSV Dim wkbT
  • main:Object 的未定义方法复数

    我正在尝试在控制台中测试一种方法 但即使是基本的复数 pluralize 1 person 不会工作 Output NoMethodError undefined method pluralize for main Object from
  • 从下拉列表中获取旧值和新值

    我试图简单地获取以前的值 以及从下拉列表中新选择的值 在此示例中 下拉列表中预先填充了为用户分配的当前组 当下拉列表更改时 我希望能够返回旧值和新值 我已经可以获得旧值 但我不知道如何返回新值 控制器代码 User Object userA
  • es6导入三个.js

    我的 es6 工作流程使用 babel 和 babel plugin transform es2015 modules system js 来only转换模块导入 导出以与 system js 一起使用 我只是对所有 es6 功能使用 绿色
  • VS2013:查找资源字典时出错

    我刚刚拿到VS2013并打开了我的VS2010项目 但是现在我看不到任何 xaml 设计 问题是样式没有被应用
  • 添加多个浮点变量时最小化浮点误差

    在我的 C 应用程序中 我有一个范围 0 1 内的双精度向量 我必须尽可能准确地计算其总数 感觉这个问题之前应该已经解决了 但我找不到任何东西 显然 如果向量大小很大并且有些项目明显小于其他项目 则迭代向量上的每个项目并执行 sum vec
  • 播种default_random_engine?

    我使用的是 Visual Studio 2010 不支持
  • 如何编写 cpp __DIR__ 宏,类似于 __FILE__

    The FILE and LINE 宏内置于C预处理器 通常用于打印带有文件名和行号的调试输出 我需要类似的东西 但只有路径末尾的目录名称 例如 如果我的代码位于 home davidc some path to some code foo
  • Mobile safari 对大图像进行下采样。如何挽留?

    我有一个 HTML 页面 其中包含 1675 像素 x 2640 像素的图像 我尝试在 iPad 上查看它 显然移动 safari 降低了图像的采样率 我们想要展示高质量的图像 但 Safari 限制了这一点 我一直在寻找保留图像大小的解决
  • Java中文件名的编码

    我正在嵌入式 Linux 平台上运行一个小型 Java 应用程序 将Java VM JamVM替换为OpenJDK后 带有特殊字符的文件名无法正确存储 特殊字符 如变音符号 将替换为问号 这是我的测试代码 import java io Fi
  • 为什么反应本机项目是在打字稿中创建的?我想要app.js

    我是 React Native 的初学者 我正在使用 React Native CLI 创建一个 React Native 项目 但项目是使用 app ts 创建的 我想在 javascript 版本中创建项目 我尝试过 React Nat
  • 多重继承不明确的基类

    考虑代码 struct Base struct Derived public Base struct A public Base struct B public A public Base struct C public A public
  • 如何限制 jQuery 事件的回调?

    好的 所以我像在谷歌中一样进行搜索 您在输入中键入文本 它会立即为您提供条目 但我不喜欢这样 我用类似的东西 TEXTINPUT keyup function 当用户输入速度非常快时 它会多次连接到数据库 是否有可能 只有当用户停止输入 1
  • 等待 Workbook.RefreshAll() (C#)

    我想循环遍历一个目录 使用 C 并刷新其中的所有 Excel 工作表 我用 Workbook RefreshAll 我该如何等待Workbook RefreshAll 声明结束 问题是 我打开FileA then Workbook Refr
  • 一个 Java 类中最多可以使用多少个 lambda?

    这是一个纯粹概念性的问题 Java 8 中的 Lambda 被转换为使用以下方式调用的方法invokedynamic 如果 JVM 对一个类可以拥有的最大方法数有限制 这是否意味着一个类中使用的 lambda 最大数量也受到 JVM 的严格
  • 使用 redux 时,应该如何在 React 组件中处理取消订阅?

    在我的组件中 我有以下内容 componentWillMount function this unsubscribe store subscribe function this setState message store getState
  • 如何将Scala Squeryl ORB与play 2.0框架集成?

    我正在尝试将 Squeryl ORB 与 play 2 0 框架一起使用 但是在调用时DB getConnection 在初始化期间我得到 BadPath 路径参数 无效路径 找不到defaultdb的数据源 路径表达式中不允许使用令牌 如