使用Hibernate本机sql查询更改PostgreSQL序列

时间:2013-10-22 11:56:51

标签: java hibernate postgresql

我的问题似乎很简单,但我很难解决它 我想使用Hibernate通过本机sql查询改变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"

1 个答案:

答案 0 :(得分:1)

最好我知道,你不能准备这个陈述。

如果hibernate允许,则模拟准备好的语句,而不是将其发送到服务器。如果没有,请清理变量并直接发出最终语句。

或者,将其包装在具有动态SQL的函数中:

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