问题标签 [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 投票
1 回答
591 浏览

scala - 在 Slick 中,如何为 Table 提供默认列

我的所有表都有一些列共享,所以我想为所有表提供默认列。以下是我到目前为止所尝试的。我正在使用 Slick 3.0。

实现这一点的简单方法如下所示。

但这是不可取的。

首先,强制每个表行案例类包含 created_at 和 updated_at。如果我有更多从 API 设计角度完全无法接受的字段。

其次,在(name, age, createdAt, updatedAt) 中显式写入两个createdAt 、updatedAt 。这不是我对默认行的期望。

我解决这个问题的理想方法如下:

在 BaseTable 或 Define BaseCaseClass 中编写一些方法,以避免在表定义中显式编写额外的两个字段,如 Student 和行案例类定义 Student。

不过,经过一番痛苦的挣扎,还是可以做到的。任何帮助将不胜感激。

0 投票
2 回答
9086 浏览

scala - 如何在 Slick 3.0 中计数(*)?

我使用 Slick 已经有一段时间了,现在我正在从 Slick 2.1 迁移到 3.0。不幸的是,我被一些普通的东西困住了,比如数线。当我以前这样做时,我的代码在 Slick 2.1 中运行良好:

在上面的代码中,我会得到一个 Int 的结果,但是在我迁移到 Slick 3.0.2 之后,我现在无法让它工作,尽管文档告诉我代码应该是相同的

我尝试了以下方法(我已经删除了不推荐使用的 withSession 调用):

但是这段代码将返回一个 slick.lifted.Rep[Int] ,它没有任何方法来获取整数值。我错过了一些隐式导入吗?

0 投票
3 回答
162 浏览

scala - Slick 3.0 中的继承实现

有案例类+光滑的表映射。

许多类使用相同的字段,例如

我怎样才能移动id, id1, id2, idn到根线程?

试过了

没有成功,有什么想法吗?

BR!

0 投票
1 回答
1923 浏览

scala - 使用 Slick 为 java.time.LocalDate 创建自定义列映射

我正在使用 Slick 3.1.0-M2,我希望在我的表中使用 java.time.LocalDate 和 java.time.LocalTime。我这样做:

所以我有 3 个隐式映射,但只有第一个可以编译。带有 java.sql.Date 和 java.sql.Time 的那些编译失败:

当我在 IntelliJ 中进行隐式参数检查时,我可以看到第一个映射在文件 JdbcTypesComponent.scala 中找到 TimestampJdbcType。在旁边,我看到了 TimeJdbcType 和 DateJdbcType。那么为什么第一个被发现了,而其他的却没有呢?

0 投票
3 回答
880 浏览

scala - Slick 3.0如何更新变量列列表,只有在运行时才知道哪个数字

是否可以更新变量列列表,该数字仅在运行时由 slick 3.0 知道?

下面是我想做的例子(不会编译)

0 投票
1 回答
2889 浏览

scala - 光滑连接两个表并获得两者的结果

我有这样的多对多关系设置:

人员 <-> 人员字段 <-> 字段

现在,我不仅要查询 Person 的所有字段(我可以这样做),还要查询 PersonField 与 Person 字段的连接版本。(我也想查询/检索数据透视表/中间表“PersonField”中的信息!)

人:

场地:

人员字段:

现在要查询 Person 的所有字段,我有一个小助手类:

所以我可以

验证人X ...

现在 personX 的每个字段都打印到控制台。奇迹般有效。

问题是,我也想获得 PersonField(与 Field)!

所以我尝试了以下更改(其中一些不起作用,我不记得了)

亲自:_

面对面_

def fields = PersonFields.all.filter(_.personID === id)// 这里没有平面图!

然后 getFields(p: Person) 看起来像这样:

什么都没给我,所以我想我的加入一定是错误的。但我到底做错了什么?

0 投票
1 回答
678 浏览

playframework-2.4 - 在 Play framework 2.4 中使用 Slick 3 在哪里初始化数据库?

当数据库表不存在时,Slick 3.0.2 不会自动创建数据库表,因此您必须执行以下操作:

你把这段代码放在 Play 2.4 的什么地方?

在急切的绑定上?

https://www.playframework.com/documentation/2.4.x/ScalaDependencyInjection#Eager-bindings

0 投票
0 回答
805 浏览

scala - Scala Slick 3在分页时获取总行数

我需要某种分页。

所以我使用方法take()drop()查询。但我也需要查询表中的总行数。我怎么才能得到它?

一些起点代码:

0 投票
2 回答
1950 浏览

scala - Slick 3 可重用的通用存储库

我在以通用方式使用 Slick 的 TableQuery 时遇到问题。

观察常规情况:

这个想法是将所有可能的东西提取到通用特征或抽象类中以避免重复。为了简单起见,我只包含有问题的代码。

并像这样使用它:

但是,这会产生编译错误:

类型参数 [T] 不符合 value apply 的任何重载替代项的边界: [E <: slick.lifted.AbstractTable[ ]]=> slick.lifted.TableQuery[E] [E <: slick.lifted.AbstractTable [ ]](缺点:slick.lifted.Tag => E)slick.lifted.TableQuery[E]

尝试通过设置边界来解决问题也无济于事。

然而,我们最终得到一个不同的错误:

需要类类型但找到 T

在以下地方:

关于解决方案的任何想法?

0 投票
0 回答
826 浏览

scala - 在理解/部分函数中添加调试点

如何在 for-comprehension 中向语句添加调试点?

我想在执行上述每个查询时进行检查,但简单地添加调试点似乎不起作用。查询在没有达到调试点的情况下被执行。我不确定这是否是正在使用的库、语言或 IDE 的限制。

这是我的设置:

  • 斯卡拉
  • IntelliJ IDEA 14.1.3
  • 斯卡拉插件 1.5.200
  • 库 - Slick 3.0(使用 DBIO 操作)

更新:

案例1:光滑

调试点不起作用。再次确认了这一点。

案例2:没有光滑

调试器确实在调试点停止。但有时它会评估表达式,有时它不会。我注意到以下问题(在柯里化/匿名函数中):

  1. 变量值显示为“Size = ?”
  2. 变量值为“调试信息不​​可用”
  3. 无法评估表达式
  4. 每当我跨过时,光标都会保持在同一条线上,而不会突出显示任何内容(尽管它正在后台执行操作)
  5. '警告:在...处找不到可执行代码'

实际上,在没有 slick 作为关键字的情况下进行搜索告诉我,很多人都有类似的问题,比如这里