【发布时间】:2016-02-02 14:17:13
【问题描述】:
我想将一个 SQL 查询翻译成一个TableQuery:
SELECT ..., TRIM(LEADING '0' FROM mycolumn) FROM mytable WHERE TRIM(LEADING '0' FROM mycolumn) = '$key
应该变成MyTableQuery.filter(<_.mycolumn something something> )
我不能使用implicit MappedColumnType,因为我正在从String 映射到String,并且结果中有其他String 列。而且我不知道如何在SELECT 和WHERE 中使用它
对于SELECT 部分,我创建了一个自定义函数,用于将结果元组映射到我的案例类,因此我只需要WHERE 部分的解决方案。
已阅读文档中的Coming from SQL 和User defined features,但不幸的是,我并不聪明。我想我可以使用SimpleFunction.unary[String, String],但还没有弄清楚如何使用。
我会用dropLeft 修剪常规的String,但是Rep[String] 没有这样的方法。 ltrim 不接受参数。 endsWith 在我的情况下是模棱两可的。
我无法填充我的查询String,因为并非数据库中的所有值都被填充并且具有不同的长度。
我绝对可以使用纯 SQL 并映射结果,但我真的很想了解我在这里缺少什么。
我正在使用 Slick 3.1.1
【问题讨论】: