Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用Hibernate原生sql查询更改PostgreSQL序列_Java_Hibernate_Postgresql - Fatal编程技术网

Java 使用Hibernate原生sql查询更改PostgreSQL序列

Java 使用Hibernate原生sql查询更改PostgreSQL序列,java,hibernate,postgresql,Java,Hibernate,Postgresql,我的问题似乎很简单,但我很难解决它。 我想通过本机sql查询使用Hibernate更改PostgreSQL序列(也欢迎使用其他解决方案),使用以下代码: Query query = getSession() .createSQLQuery("ALTER SEQUENCE users_id_seq RESTART WITH ?") .setInteger(0, 1); query.executeUpdate(); 但我得到了这个错误: Hibern

我的问题似乎很简单,但我很难解决它。
我想通过本机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"

据我所知,你不能准备那份声明

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

或者,使用动态SQL将其包装到函数中:


我知道这不是一个好做法,但我可能会直接使用final语句,当然是在清理输入参数之后。Fwiw,更改序列也有点奇怪。:-)实际上,我执行了一些DBUnit测试,这就是为什么我需要它的原因。