如何执行本机查询(创建表)在Java中,同时也返回有关操作是否成功的信息。我尝试过的每种方法始终都一样。查询正在工作,但是我收到有关“该查询有多糟糕”的错误,但正如我所说的那样。
try{
session.createNativeQuery("create table test (id number)").getResultList()
}
catch(Exception e){
// I am getting error "Could not extract result set metadata"
// Is there any way to execute getResultList() only if operation was select?
}
总结,我需要执行CRUD。1.如果执行了“选择”,则需要resultList。2.如果“创建”,我不想执行getResultSet()3.如果执行了“插入”,则需要有关受影响的行数的信息。等等...最重要的是,我始终需要有关最终错误的信息!如果查询缺少语法或某些内容,我总是需要获取该信息。
人可以帮我吗?我从几天开始就为此奋斗...
使用本机查询的简单示例。您可以从affected rows
值确定查询结果。
EntityTransaction entityTransaction;
EntityManager entityManager;
try
{
entityTransaction = entityManager.getTransaction();
entityTransaction.begin();
// rowsUpdated - The number of "affected rows".
int rowsUpdated = entityManager.createNativeQuery("create table test (id nubmer)").executeUpdate();
entityTransaction.commit();
}
catch (HibernateException | IllegalStateException e)
{
// handle exceptions
if (entityTransaction != null && entityTransaction.isActive())
{
entityTransaction.rollback();
}
}