`virtual: true` 对嵌入式模式有影响吗?
Does `virtual: true` have any effect with an embedded schema?
documentation for Ecto.Schema
对 :virtual
选项的说明如下:
:virtual
- When true, the field is not persisted to the database.
embedded_schema/1
函数表示它描述了一个专门保存在内存中的模式。 (即它永远不会持久保存到数据库中。)这是否意味着对于嵌入式模式,:virtual
选项无效?
Ecto.Schema.#embedded_schema/1
上的文档实际上说:
An embedded schema is either embedded into another schema or kept exclusively in memory. For this reason, an embedded schema does not require a source name and it does not include a metadata field.
当嵌入到另一个模式中时,它充当直接注入目标模式的片段,并且 :virtual
字段照常运行。
保存在内存中时,:virtual
个字段仍然
- 允许通过声明类型
:any
来可选地跳过类型检查,这与其他字段不同
- 未在
__schema__(:fields)
中列出
- 不支持使用
__schema__(:type, field)
查询类型
- 不支持
:autogenerate
也不支持 :read_after_writes
选项
documentation for Ecto.Schema
对 :virtual
选项的说明如下:
:virtual
- When true, the field is not persisted to the database.
embedded_schema/1
函数表示它描述了一个专门保存在内存中的模式。 (即它永远不会持久保存到数据库中。)这是否意味着对于嵌入式模式,:virtual
选项无效?
Ecto.Schema.#embedded_schema/1
上的文档实际上说:
An embedded schema is either embedded into another schema or kept exclusively in memory. For this reason, an embedded schema does not require a source name and it does not include a metadata field.
当嵌入到另一个模式中时,它充当直接注入目标模式的片段,并且 :virtual
字段照常运行。
保存在内存中时,:virtual
个字段仍然
- 允许通过声明类型
:any
来可选地跳过类型检查,这与其他字段不同 - 未在
__schema__(:fields)
中列出
- 不支持使用
__schema__(:type, field)
查询类型
- 不支持
:autogenerate
也不支持:read_after_writes
选项