标签类型到底是什么?

Jas*_*Jas 1 slick

我知道我可以在 Slick 中定义一个表,如下所示:

class MyTable(tag: Tag)
Run Code Online (Sandbox Code Playgroud)

但它到底是什么?

我阅读了文档,它说:

标签标记由 AbstractTable 实例表示的特定行。

这对我没有帮助,

  1. 特定行是什么意思?
  2. 它如何代表它?
  3. 为什么我需要在我的ctor中定义它?
  4. 为什么它被称为“Tag它的标签是什么”?
  5. 我需要Tag在创建Table类时编写此代码,但我想了解为什么编写此代码,而不仅仅是遵循slick它告诉我这就是定义表的方式。

cvo*_*ogt 5

您可以将 Tag 视为 SQL 别名。它区分查询中同一表的不同实例。

  • 谢谢,这增加了我的理解,但为什么我需要意识到这一点?如果我根本没有更新这个标签参数 `class Coffees(tag: Tag) extends Table[(String, Double)](tag, "COFFEES") {` 那么为什么我需要在我的客户端代码中包含这个?我所做的就是将其按原样传递给父级,为什么我需要在代码中看到它?为什么它不仅是光滑代码的内部? (2认同)