问题标签 [scalaquery]

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.

0 投票
1 回答
564 浏览

scala - 如何在ScalaQuery中获取类对象而不是元组?

我已经在 Scala 和 ScalaQuery 中开始了我的第一个项目。到目前为止,尽管我偶尔会遇到一点困难,但两者看起来都很好并且很有希望。

有人可以解释一下如何获取一个类对象(在这种情况下,域案例类有大约 12 列)而不是元组。下面的查询返回元组,但问题是我需要大约 9 列(或所有列)的表,而不在查询产量中提供每个列名。Domain 类已经 * 定义了所有列,那么为什么下面的查询会返回元组而不是 Domain 对象,以便我可以使用 Domain.name、Domain.level 而不是计算返回的元组中的位置。

有什么建议吗?

谢谢,帕万

0 投票
1 回答
238 浏览

scala - scalaquery 查询的超类型

所有 Scalaquery 查询的超类型是什么?

据我了解,Query[Projection[Product]]应该是这样,例如:

所以val query: Query[Projection[Product]] = for (all <- Tab) yield all.*应该为Tab = new Table[(Int, Int)] {…}

…但显然我不明白输入 scala 是如何工作的。

我很困惑,所以如果我错过了什么,请询问。

0 投票
2 回答
952 浏览

scala - Scalaquery:按“任何”条件组合过滤

我想加入一个任意长度的过滤器列表or。如果列表是固定长度的,它将如下所示:

加入过滤器and很容易:

Boolean将评估为s 的事物与 s 相连接or也很容易:


更新:

正如我写的那样,如果 scalaqueryfilter是标准的,那将很容易。不幸的是,scalaquery 只允许这些过滤器由 sql 引擎执行。

所以我的具体问题是:如果我有一组字符串元组:

以及包含“t”和“m”两列的查询,

如何生成代表以下 SQL 的过滤器:

…或者可以将 sqlin运算符与这样的元组一起使用吗?

如果是这样,如何在scalaquery中做到这一点


黑客:

目前,我执行以下操作:

……但这太骇人听闻了。

解决方案

我这样实现了 Stefan 的解决方案:

0 投票
2 回答
436 浏览

sql - 使用 ScalaQuery(或其他类型安全的东西)处理宽 SQL 表

许多数据库都有包含很多列的表,但 ScalaQuery 使用元组来表示表模式,而 Scala 不支持如此宽的元组。有什么方法可以使用 ScalaQuery 处理这些表(没有下降到执行原始 SQL)?如果没有,是否有任何其他类型安全的查询语言支持这一点?

0 投票
1 回答
303 浏览

scala - ScalaQuery中带有命名字段的原始结果行?

在 ScalaQuery 中,我可以这样做来处理“原始”结果行:

但这完全是位置性的( r 是 a PositionedResult)。有没有办法使用列名处理结果?(例如,row.getString("foo")。)

我可以使用另一个支持此功能的 DB API,例如 Querulous,但我已经在我的代码中使用 ScalaQuery 进行类型安全查询,并且如果可能的话,我想只使用一个库。

0 投票
2 回答
1269 浏览

scalaquery - 如何在 ScalaQuery 中指定 Postgresql 模式?

例如,我尝试过:

但这不起作用。

0 投票
1 回答
637 浏览

scalaquery - ScalaQuery 的 query/queryNA 比 JDBC 慢几倍?

在以下许多查询的性能测试中,这段定时的 JDBC 代码需要 500-600ms:

但是,当使用 ScalaQuery 时,时间会超过 2 秒:

在使用服务器日志进行调试后,事实证明这是由于 PreparedStatements 被重复准备而不是重复使用的事实。

这实际上是我们在应用程序代码中遇到的性能问题,所以我们想知道我们是否遗漏了有关如何在 ScalaQuery 中正确重用准备好的语句,或者是否建议使用 JDBC 解决方法。

0 投票
5 回答
402 浏览

mysql - 在最小化冗余方面,像 MySQL 和 H2 这样的数据库有多聪明?

我是数据库新手,这个问题与我期望数据库有多聪明有关。这里的“数据库”是指“类似于”MySQL 或 H2(我实际上不知道这两者是否相似,只是它们很流行)。我实际上使用的是 ScalaQuery,所以它从底层数据库中抽象出来。

假设我有一个表,其中包含类型为 (String, Int) 的条目,在 String 条目中有很多冗余。所以我的桌子可能看起来像:

(Adam, 18) (Adam, 24) (Adam, 34) ... 继续 ... (Adam, 3492) (Bethany, 4) (Bethany, 45) ... 继续 ... (Bethany, 2842)

如果我用 H2 存储这个表,它是否会足够聪明地实现“Adam”和“Bethany”重复很多次,并且可以用指向查找表的枚举替换?还是会浪费大量存储空间?

相关:如果 H2 在这方面对字符串很聪明,那么它在双打方面是否也很聪明?在我可能脑死亡的初始表中,我碰巧有很多重复的双字段。

谢谢!

0 投票
1 回答
853 浏览

database - 是否有计划像在 F# 中那样支持 Scala 的 SIQ (ScalaIntegratedQuery) 的“类型提供程序”?

SIQ 的当前状态Christopher Vogt 在ScalaDays 2011上介绍。它展示了查询的工作方式和外观,但据我所知,没有关于如何表示这些类型的概念,例如是否仍然需要编写样板代码来向 Scala 解释数据库结构。

F# 3.0 添加了类型提供程序(Don Syme 的 PDC 演讲:视频;Tomas Petricek 的 GOTO Copenhagen 演讲:视频幻灯片博客文章),这使得基本上无需手动编写或生成数据库(或其他数据提供者)和语言/类型系统,因为语言可以直接使用类型提供程序从数据库本身查询结构信息。

ScalaIntegratedQuery 是否能够在不需要用户自己编写样板代码的情况下向 Scala 编译器提供数据库的类型/关系?

0 投票
1 回答
185 浏览

scala - scalaquery 检索值

我有几张桌子,为了简单起见,我们说 2 张。我可以用这种方式创建它们,

我将进行查询以从 tableA 中检索值“a”和从 tableB 中检索值“a”作为“a”结果中的列表,我的结果应该是:

到目前为止,我在查询中达到了这一点,

我没有测试代码,所以代码中可能有错误。我的问题是我无法从结果中检索数据。

要了解问题,请乘坐火车和课程。您在下午 12 点之后搜索火车,您需要有一个结果集,其中火车名称和火车在火车结果中作为列表列出。