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

时间:2015-03-10 00:24:31

标签: java jpa java-ee entitymanager

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

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

查询正在执行,但会出现异常。

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

是否有适当的方法从Java执行这样的查询?

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

对于那些使用共享 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();
  }
});