Java 是否可以执行;创建角色“;在createNativeQuery中?

Java 是否可以执行;创建角色“;在createNativeQuery中?,java,jpa,jakarta-ee,entitymanager,Java,Jpa,Jakarta Ee,Entitymanager,我想从应用程序管理我的角色。但是当我使用 entityManager.createNativeQuery(String.format("create USER %1$s nologin;",tenantId)).getResultList(); 正在执行查询,但出现异常 javax.persistence.PersistenceException: org.hibernate.exception.GenericJDBCException: could not extract ResultSet

我想从应用程序管理我的角色。但是当我使用

entityManager.createNativeQuery(String.format("create USER %1$s nologin;",tenantId)).getResultList();
正在执行查询,但出现异常

javax.persistence.PersistenceException: org.hibernate.exception.GenericJDBCException: could not extract ResultSet

有没有合适的方法从Java执行这样的查询?

我认为您需要使用
executeUpdate
而不是
getResultList

entityManager.createNativeQuery(String.format("create USER %1$s nologin;",tenantId)).executeUpdate();

对于使用共享EntityManager的用户,可以使用TransactionTemplate:

@Autowired
private EntityManager em;
@Autowired
private TransactionTemplate tt;
然后:


我已经试过了-出现了异常,但是查询仍然没有执行。我也想知道这一点。。我试过研究,但事实上,什么也没发生。。
tt.execute(new TransactionCallbackWithoutResult() {
  @Override
  protected void doInTransactionWithoutResult(TransactionStatus status) {
    em.createNativeQuery(String.format("create USER %1$s nologin;",tenantId))
      .executeUpdate();
  }
});