4

我将 Play Framework (2.3.1) 与 Slick (play-slick 版本 0.8.0-M1) 和 MySQL 数据库 (5.5.28) 一起使用。

我的一个查询导致 MySQLSyntaxErrorException:

Preparing statement: select x2."id", x2."course_id", x2."trainee_id", x2."transaction_id" from "trainee_grouptraining_GroupBooking" x2 where x2."course_id" = 1

问题似乎与双引号有关,因为其他查询工作得很好,并且它们使用如下单引号:

Preparing statement: select x2.`id`, x2.`courseLanguage`, x2.`date`, x2.`description`, x2.`duration`, x2.`kind`, x2.`maxParticipants`, x2.`name`, x2.`courseType_id`, x2.`trainer_id` from `Course` x2 where x2.`id` = 1

我该怎么办?

4

2 回答 2

9

我猜你正在进口

scala.slick.driver.JdbcDriver.simple._

你应该导入

scala.slick.driver.MySQLDriver.simple._

反而。

于 2014-09-28T17:08:07.877 回答
0

MySQL 使用默认的反引号来引用标识符。您可以使用SQL 模式 ANSI_QUOTES启用双引号

ANSI_QUOTES

将 " 视为标识符引号字符(如 ` 引号字符)而不是字符串引号字符。在启用此模式的情况下,您仍然可以使用“`”来引用标识符。启用 ANSI_QUOTES 后,您不能使用双引号来引用文字字符串,因为它被解释为标识符。

或者干脆使用反引号。

于 2014-07-08T10:24:13.597 回答