如何正确定义 SQLKorma 实体的外键



当我使用以下实体配置运行简单查询时。SqlKorma 生成一个查询并尝试将table_b与table_a联接,但它使用的是不存在的字段?

SELECT "table_a"."token", "table_a"."first-name", "table_a"."last-name", "table_b"."item" FROM ("table_a" LEFT JOIN "table_b" ON "table_b"."table_a_id" = "table_b"."token" 

我已经在配置中指定了正确的外键,但 sqlKorma 仍然尝试在table_a_id上加入?

(declare table_a table_b)
(korma/defentity table_a
                 (korma/pk :token)
                 (korma/database db)
                 (korma/table :table_a)
                 (korma/has-one table_b))
(korma/defentity table_b
                 (korma/pk :token)
                 (korma/database db)
                 (korma/table :table_b)
                 (korma/belongs-to table_a {:fk :token}))

如果我table_b PK 设置为 table_a_id那么查询将起作用,但我想使用令牌作为 PK。

我需要像这样在另一端添加外键:

(declare table_a table_b)
(korma/defentity table_a
                 (korma/pk :token)
                 (korma/database db)
                 (korma/table :table_a)
                 (korma/has-one table_b {:fk :token}))
(korma/defentity table_b
                 (korma/pk :token)
                 (korma/database db)
                 (korma/table :table_b)
                 (korma/belongs-to table_a {:fk :token}))

相关内容

  • 没有找到相关文章

最新更新