在Slick中具有不同数据类型的列的左连接

时间:2015-01-27 10:37:53

标签: postgresql scala slick

我的情况是一个表中的一列是Bigint而另一列是varchar。我正在使用ScalaSlick来申请。问题是我需要对这两列进行左连接,但由于类型不匹配而导致编译错误。 我可以将DB列从BigInt更改为varchar,但是我必须在很多地方进行更改。有没有办法可以避免更改表格和相关实体?

2 个答案:

答案 0 :(得分:1)

您可以cast整数来表示字符串。

LEFT JOIN mytable on myint::text = mytext

您也可以使用CAST(myint as varchar)

看看here

答案 1 :(得分:1)

您可以使用方法Column使用正确的类型参数来转换类型为asColumnOf的值。这样生成的sql也将包含连接条件中的强制转换。

类似的东西:

for {
    (a, b) <- aTable.leftJoin(bTable).on(_.someColumn === _.anotherColumn.asColumnOf[Long])
} yield (a, b)