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 回答