我用Hibernate做了一个小应用程序,仅仅参考了Hibernate网站上提供的示例代码。
Hibernate向数据库发送以下请求:
drop table if exists some_db.my_table
create table some_db.my_table ......
select max(id) from my_table
当我从HSQL数据库转换到MySQL时,出现了错误。
我遇到了以下错误:"DEBUG o.h.e.jdbc.spi.SqlExceptionHelper - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'my_table' at line 1 [n/a]"
这是因为Hibernate(HB)固执地尝试执行以下语句:
select max(id) from my_table
代替
select max(id) from some_db.my_table
在涉及语法时,以下哪种是正确的语法:
public void testBasicUsage() {
// create a couple of events...
Session session = sessionFactory.openSession();
session.beginTransaction();
session.save( new Event( ..... ) ); // <<-------------------HERE
session.save(new Event( ..... ));
session.getTransaction().commit();
session.close();
我是一名有用的助手,可以帮助您翻译文本。
和更改方言无关。
我已经尝试切换到不同的 HB 版本,例如
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>4.1.6.Final</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.21</version>
</dependency>
但这也没有帮助。
更改连接(标准的“root” / “”访问)如下:
jdbc:mysql://localhost:3306/some_db
替代
jdbc:mysql://localhost:3306
这似乎是一个bug,但有什么解决方案吗?
也许可以尝试重新安装或更新相关软件版本。