Mysql 如何在原始SQL中正确使用Quill中缀?

Mysql 如何在原始SQL中正确使用Quill中缀?,mysql,sql,scala,quill,Mysql,Sql,Scala,Quill,我正在做一个Quill项目,突然我想执行rawSQL。我参考了文档并学习了如何做。 当我执行以下命令时,效果非常好 def getProjectsFromSql: Future[List[(Index, String)]] ={ val rawQuery = quote( infix"""SELECT * FROM Project""".as[Query[Project_True]] ) val result = ctx.run(rawQuery)

我正在做一个Quill项目,突然我想执行rawSQL。我参考了文档并学习了如何做。 当我执行以下命令时,效果非常好

def getProjectsFromSql: Future[List[(Index, String)]] ={
    val rawQuery = quote(
        infix"""SELECT * FROM Project""".as[Query[Project_True]]
    )

    val result = ctx.run(rawQuery)
    result
  }
但当我在下面执行时,它会给出错误

def getProjectsFromSql: Future[List[(Index, String)]] ={
    val rawQuery = quote(
        infix"""SELECT project_id, name FROM Project""".as[Query[(Int, String)]]
    )

    val result = ctx.run(rawQuery)
    result
  }
错误

我无法确定错误的原因。我想尽快解决这个问题。
(我的数据库是mysql)

错误背后的原因是Quill根据正在读取的类的字段名确定表列名。元组的字段名是
\u 1
\u 2
,因此这就是Quill用于列名的名称


您可以通过定义一个新的case类而不是使用元组来解决这个问题,并将字段命名为与列相同的名称。或者您可以更改sql以将列名设置为_1和_2-这是一种很好的方法,因为我们知道_1和_2是元组的预期列名。

嗨,Dushyantha Wijesinghe,我有一个与上述相关的问题。与其将
SELECT project\u id,name FROM project
放入中缀,不如将其分配给val,比如
myQuery
,然后用该val替换中缀中的查询,这样可以吗?因为我的查询将是动态的,所以我希望首先将其生成为字符串,然后将其提供给中缀。但是,它不起作用。你能帮忙吗?我已经在这里问过了。提前谢谢。我也发现了类似的错误。如果从文档中粘贴相同的查询,则会出现此错误
com.github.mauricio.async.db.mysql.exceptions.MySQLException: Error 1054 - #42S22 - Unknown column 'x._1' in 'field list'