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();
}
});