0

私の問題は非常に単純なようですが、解決するのに苦労しています。
次のコードを使用して、ネイティブSQLクエリを介してHibernateを使用してPostgreSQLシーケンスを変更したい(他のソリューションも歓迎されます):

    Query query = getSession()
        .createSQLQuery("ALTER SEQUENCE users_id_seq RESTART WITH ?")
        .setInteger(0, 1);
    query.executeUpdate();

しかし、私はこのエラーが発生しています:

Hibernate: 
    ALTER SEQUENCE users_id_seq RESTART WITH ?
hibernate.engine.jdbc.spi.SqlExceptionHelper - SQL Error: 0, SQLState: 42601
hibernate.engine.jdbc.spi.SqlExceptionHelper - ERROR: syntax error at or near "$1"
4

1 に答える 1

1

私が知っている限り、あなたはその声明を準備することはできません.

hibernate が許可する場合は、サーバーに送信する代わりに、準備されたステートメントをエミュレートします。そうでない場合は、変数をサニタイズして、最終ステートメントを直接発行します。

または、動的 SQL を使用して関数でラップします。

http://www.postgresql.org/docs/current/static/plpgsql-statements.html#PLPGSQL-STATEMENTS-EXECUTING-DYN

于 2013-10-22T12:06:29.737 に答える