如何执行本地查询并获得反馈?

问题描述 投票:0回答:1

如何执行本机查询(创建表)在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.如果执行了“插入”,则需要有关受影响的行数的信息。等等...最重要的是,我始终需要有关最终错误的信息!如果查询缺少语法或某些内容,我总是需要获取该信息。

人可以帮我吗?我从几天开始就为此奋斗...

java sql spring hibernate jdbc
1个回答
1
投票

使用本机查询的简单示例。您可以从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();
            }
        }
© www.soinside.com 2019 - 2024. All rights reserved.