微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在 Slick

如何解决在 Slick

我有如下声明

  def create(company: Company): Future[Company] = {
    dbConfig.db.run(companies.filter(_.name === company.name).result.headOption)
}

并且它们会因诸如此类的异常而失败

org.h2.jdbc.JdbcsqlSyntaxErrorException: Syntax error in sql statement

我试图逃避单引号,但没有成功。

dbConfig.db.run(companies.filter(_.name === company.name.replace("'","''")).result.headOption)

当我尝试插入这样的记录时:

val company = doSync(companies.create(Company(0,"C's company")))

我得到的例外是:

Syntax error in sql statement "select `id`,`name` from `company` where `name` = 'C\'s company[*]'"; sql statement:
select `id`,`name` from `company` where `name` = 'C\'s company' [42000-200]
org.h2.jdbc.JdbcsqlSyntaxErrorException: Syntax error in sql statement "select `id`,`name` from `company` where `name` = 'C\'s company' [42000-200]

请注意,我在 MysqL 模式下使用 H2 来运行我的测试。

解决方法

该错误向我表明您导入了错误的 Slick 配置文件。我不熟悉 Mysql 模式下的 H2。也许您需要使用 MySQL 配置文件? (如果您使用的是 MySQL,则为 H2)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。