4

私は休止状態で少しアプリをしました。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 に切り替えるとき。

「DEBUG ohejdbc.spi.SqlExceptionHelper - SQL 構文にエラーがあります。1 行目の 'my​​_table' 付近で使用する正しい構文については、MySQL サーバーのバージョンに対応するマニュアルを確認してください [該当なし]」

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

どちらも役に立ちません。

バグのようですが、解決策は何ですか?

4

2 に答える 2

2

これには、注釈付きエンティティ/休止状態の XML マッピングを投稿する必要があります。

最も可能性の高い原因は、テーブル アノテーションで schema プロパティを指定していないことです。

つまり、次のようなものです

@Table(schema="some_db")
于 2012-09-14T08:56:42.107 に答える