【发布时间】:2015-03-25 22:43:16
【问题描述】:
我有一种情况,其中一个表中的一列是Bigint,另一列是varchar。我正在为应用程序使用Scala 和Slick。问题是我需要对这两列进行左连接,但由于类型不匹配而出现编译错误。
我可以将 DB 列从 BigInt 更改为 varchar,但是我将不得不在很多地方进行更改。有没有办法可以避免更改表格和相关实体?
【问题讨论】:
标签: postgresql scala slick
我有一种情况,其中一个表中的一列是Bigint,另一列是varchar。我正在为应用程序使用Scala 和Slick。问题是我需要对这两列进行左连接,但由于类型不匹配而出现编译错误。
我可以将 DB 列从 BigInt 更改为 varchar,但是我将不得不在很多地方进行更改。有没有办法可以避免更改表格和相关实体?
【问题讨论】:
标签: postgresql scala slick
【讨论】:
您可以使用其方法asColumnOf 和适当的类型参数来转换类型为Column 的值。这样生成的 sql 也将包含连接条件中的强制转换。
类似:
for {
(a, b) <- aTable.leftJoin(bTable).on(_.someColumn === _.anotherColumn.asColumnOf[Long])
} yield (a, b)
【讨论】: