使用 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 上记录 hibernate 的 DDL 代码吗?启动?