我有两个表,两个表的值都不为空。
CREATE TABLE data_raw
(
id bigserial not null constraint data_raw_pkey primary key,
title varchar(255) not null
search_result_id varchar(255) not null constraint data_search_result_id_key unique
)
CREATE TABLE data_annotated
(
id bigserial not null constraint data_annotated_pkey primary key,
id_match numeric(4,3) not null
search_result_id varchar(255) not null
)
我有一个连接两个表的视图
CREATE VIEW data_test AS
SELECT r.id, r.title, a.id_match, r.search_result_id
FROM data_raw r JOIN data_annotated a ON r.search_result_id = a.search_result_id
所有字段都不为空,为表生成的代码具有非可选字段。但是,视图的生成类具有所有可选字段。如何实现从视图生成非可选字段?使用后退。
case class DataTest(
id: ID,
title: Option[String] = None,
idMatch: Option[scala.math.BigDecimal] = None,
searchResultId: Option[String] = None) extends Node
答案 0 :(得分:0)
这不是解决方案,但我想生成器正在查看架构定义。
select column_name, is_nullable
from INFORMATION_SCHEMA.COLUMNS where table_name = 'data_test';
| column_name | is_nullable |
|-----------------|-------------|
| id | YES |
| title | YES |
| id_match | YES |
|search_result_id | YES |
至少我希望这能解释您为什么一路得到Option
的原因。