使用 play、hibernate 和 mysql 更改 rewriteBatchedStatements

Posted

技术标签:

【中文标题】使用 play、hibernate 和 mysql 更改 rewriteBatchedStatements【英文标题】:changing rewriteBatchedStatements with play, hibernate and mysql 【发布时间】:2012-07-25 07:39:51 【问题描述】:

我正在尝试通过 play(1.2.4)+mysql 优化批量插入。 我看到一些帖子谈论将以下内容添加到 jdbc 配置(将其添加到连接字符串):useServerPrepStmts=false&rewriteBatchedStatements=true&useCompression=true

我已经尝试过:

db=mysql://root@localhost/data?useServerPrepStmts=false&rewriteBatchedStatements=true&useCompression=true

但我收到此错误:

A database error occured : Cannot connected to the database, The connection property 'useCompression' only accepts values of the form: 'true', 'false', 'yes' or 'no'. The value 'true?useUnicode=yes' is not in this set.

我也尝试使用 db=jdbc:mysql://....

仍然没有运气。 我错过了什么?

【问题讨论】:

【参考方案1】:

Play 会自动在 MySQL 连接字符串中添加以下内容:

?useUnicode=yes&characterEncoding=UTF-8&connectionCollation=utf8_general_ci

所以我猜你的连接字符串最终无效,因为现在有两组参数(以问号开头)。

不幸的是,Play 代码的那部分在 DBPlugin 类中是相当硬编码的,这意味着您不能以这种方式添加选项。您将不得不寻找一种方法在稍后阶段更改选项。

【讨论】:

以上是关于使用 play、hibernate 和 mysql 更改 rewriteBatchedStatements的主要内容,如果未能解决你的问题,请参考以下文章

Play 2.4 / Ebean / JPA / hibernate-entitymanager 的正确配置是啥?

Play 2.4 JPA/Hibernate EntityManager 不刷新到数据库

在 Play 中为 Scala 实现 Hibernate

我可以在 Play 上记录 hibernate 的 DDL 代码吗?启动?

休眠 3.2.5 与 Play Framework 1.2.5

更新如何与 Ebean 和 Play 框架一起使用