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测试,这就是为什么我需要它的原因。