【发布时间】:2012-09-07 09:55:27
【问题描述】:
我用 Hibernate 做了一个小应用程序。仅来自 HB 网站提供的样本。
Hibernate 对 DB 说:
drop table if exists some_db.my_table
create table some_db.my_table ......
select max(id) from my_table
当我从 HSQL db 转到 MySQL 时。
我有错误 “调试 ohejdbc.spi.SqlExceptionHelper - 您的 SQL 语法有错误;请查看与您的 MySQL 服务器版本相对应的手册,以了解在第 1 行的 'my_table' 附近使用的正确语法 [n/a]”
因为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
也无济于事。
这似乎是一个错误,但有什么解决方案?
【问题讨论】:
-
实体声明如下:@Entity @Table(name = "Event", schema = "some_db")
-
实体声明如下:@Entity @Table(name = "my_table", schema = "some_db")
标签: mysql sql hibernate code-generation