问题标签 [slick-3.0]

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 投票
2 回答
5405 浏览

scala - Slick 3.0.0:如何查询一对多/多对多关系

大约一年前,对于 slick 2.x ( scala slick one-to-many collections ),基本上也有人问过同样的问题。我想知道反应性浮油的发布是否有任何进展。

例如,假设我们有三个表。librarybook并且library_to_book图书馆有很多书。我想要的是一个图书馆的清单,里面有他们的书。在 scala 中,这类似于Seq[(Library, Seq[Book])]. 我的查询如下:

results在这种情况下是类型Seq[(Library, Book)]。我如何必须更改我的查询才能获得类型的结果Seq[(Library, Seq[Book])]?编写此类查询的“巧妙方式”是什么?

0 投票
3 回答
3843 浏览

scala - 使用 Slick 3 插入或更新

Slick 3文档中的哪里记录了如何进行insertOrUpdate类似操作?

0 投票
1 回答
1137 浏览

scala - Slick table 不带类型参数

我正在玩 slick 3.0.0 的新 DBIO api,但在泛型方面遇到了一些问题。

使用此代码:

编译器说 AbstractTable 不接受任何类型参数。我不理解这里看到的声明https://github.com/slick/slick/blob/3.0/slick/src/main/scala/slick/lifted/AbstractTable.scala

我怀疑这也是导致此错误的原因。

有什么建议吗?

0 投票
0 回答
366 浏览

scala - 基于非主键的 slick 3.0 insertIfNotExists 实现

我有一个带有 autoInc 主表的表,key('id')但我还需要通过另一列(列“代码”)控制表中记录的唯一性。

我试图这样做:

方法findByCode和插入分别返回Future[A]Future[Int]。当我在要插入的一些记录上运行此代码时,我意识到findByCode没有找到已插入的记录并且我得到了大量的记录重复。作为一种解决方法,我在我的数据库中建立了一个约束(由 postgres 驱动),但我想知道我是否在代码中做错了,或者当我刚刚插入时,可能无法保证检查记录是否存在另一个并发事务?

什么是我的目的的最佳推荐方式?

1)建立唯一性约束并包装插入int尝试块?(我现在用这个)

2)使用带有一个查询的plainsql实现insertOrUpdate(插入不存在的位置(选择位置...))

3) 为此类查询编写一个同步包装器(使用 Await)并在一个线程中同步运行它们

4) 其他

提前感谢您的任何建议。

0 投票
1 回答
632 浏览

postgresql - 批量插入时 Slick 3.0 中的数据库异常

在通过 slick 3 中的批量插入每五秒插入数千条记录时,我得到了

我的数据访问层如下所示:

在插入批处理中关闭连接没有效果......它仍然给出同样的错误。

我从我的代码中调用插入批处理,如下所示:

如果我在这里工作后关闭连接,正如您在注释代码中看到的那样,我会收到错误:

像这样调用没有 Future.sequence 的方法后:

我仍然有太多客户错误...

0 投票
1 回答
1960 浏览

scala - Slick 3.0:从 Option 内部的数据库获取结果的惯用方式(Scala Play Framework)

我有这个代码,API它允许我从数据库中检索和对象并JSON使用以下方法返回一个对象Slick 3.0

问题是,如果我查询一个不在数据库中的对象,我会得到一个异常。我想做的是获取从返回的Option内部,以便能够编写如下内容:FutureModel

是否有意义?

0 投票
1 回答
2671 浏览

scala - 筛选 slick 3 中的数字列表

我遇到了一个过滤 slick-3 中数字列表的条件。这是我的实体。

在这里我想搜索companyTypeId它是Option[List[Long]]

我尝试通过companyTable.filter(_.companyTypeId === Some(List(1,2)))但得到Vector()并且表中有一行数据,companyTypeId 为 {1}。我正在使用 Postgres DB。

提前致谢。

0 投票
1 回答
1512 浏览

scala - 如何在 Slick 3.0.0 中使用 StaticQuery?

在 Slick 2.1 中,我使用以下代码从文件中执行 sql 查询:

在 Slick 3.0.0 中,您使用 dbConfig.db.run 方法来执行 DBIOAction 并获得结果的未来。但我找不到将 Q.queryNA (即StaticQuery[Unit, R])的结果转换为DBIOAction. 这种方式存在吗?

我现在结束了不推荐使用的电话。帮助我变得更好!

0 投票
1 回答
2220 浏览

slick - Slick 3.0 记录查询性能

目前我已启用调试登录:

它记录事务开始/结束、由 slick 运行的已编译 sql 查询以及成功/结果。

slick 可以为我提供有关查询运行时间的信息吗?我应该在哪个包上启用 DEBUG 模式以获取此信息?


编辑

我发现这个链接说这是不可能的。这仍然成立吗?

0 投票
1 回答
709 浏览

scala - Query 或 DBIOAction 的通用类型

我正在尝试将查询或操作作为参数传递给方法。原因是我想对同一张表上不同查询的结果运行相同的操作。

例如:

还有我的方法:

轮流我不能只传递 query1 或 query2 因为它们有不同的类型(这是我的 ide 自动完成的):

此外,ListItems.TableElementType 中的 ListItems 会导致编译器错误:“未找到:值 ListItems”。

我还尝试通过操作而不是查询来查看我是否有更多的运气,但事实并非如此。类型相同,但 ListItems.TableElementType 仍然显示错误“未找到:值 ListItems”。

如何将这些查询或操作作为参数传递给常用方法?