是否可以运行不返回resultSet的SQL脚本,或者不是INSERT或UPDATE类型的脚本?
我正在尝试以下方法:
Query q = entityManager.createNativeQuery("DECLARE @max int;\n" +
"SELECT @max = MAX(customer_number)+1\n" +
"FROM organisation\n" +
"\n" +
"exec('ALTER SEQUENCE organisation_customer_number_seq RESTART WITH ' + @max)");
...但当然只是创建查询,如何执行它?我只能为Query的不同类型的resultSets和executeUpdate方法找到getter。如何运行我上面创建的查询来重新启动序列?
答案 0 :(得分:2)
您在Query
中看到的某些方法实际执行了查询,例如Query.getResultList:
<强> getResultList()强>
执行SELECT查询并将查询结果作为无类型返回 列表。
List<Object[]> results = q.getResultList();
更新:在您的情况下,查询最终为ALTER
,因此当您想出来时,相关方法将是executeUpdate()
,它不返回任何列表或值,而是返回受影响的行数。
int executeUpdate()
执行更新或删除声明。
int altered = q.executeUpdate();