Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用Hibernate访问Oracle数据库链接表_Java_Oracle_Hibernate_Dblink - Fatal编程技术网

Java 使用Hibernate访问Oracle数据库链接表

Java 使用Hibernate访问Oracle数据库链接表,java,oracle,hibernate,dblink,Java,Oracle,Hibernate,Dblink,我的用户希望输入随机sql以访问Oracle数据库中存在数据库链接的数据库。然而,这给了Hibernate一个例外。 下面是一个函数,它应该通过运行查询来检查查询是否有效。 欢迎提出任何建议 例外情况是: javax.persistence.PersistenceException: org.hibernate.exception.SQLGrammarException: could not execute query 'Select ID,NAME from YYY@XXX_DB_LINK'

我的用户希望输入随机sql以访问Oracle数据库中存在数据库链接的数据库。然而,这给了Hibernate一个例外。 下面是一个函数,它应该通过运行查询来检查查询是否有效。 欢迎提出任何建议

例外情况是:

javax.persistence.PersistenceException: org.hibernate.exception.SQLGrammarException: could not execute query 'Select ID,NAME from YYY@XXX_DB_LINK'
代码如下:

public String testSQL(String sqlQuery) {
    if(!checkAllowedSQL(sqlQuery)) {
        logger.debug("Forbidden SQL Query detected: " + sqlQuery);
        return "Forbidden SQL Query detected '" + sqlQuery + "'";
    }


try {
    Query query = entityManager.createNativeQuery(sqlQuery);
        List<Object[]> list = query.getResultList();
    } catch(Exception e) {
        return e.toString() +  " '" + sqlQuery + "'";
    }

    return null;
}

您应该为链接表创建同义词YYY@XXX_DB_LINK,然后您的用户可以提交一个本地查询,如Select ID,NAME from YYYY,而不必担心表的实际位置。

这个问题很好,但我想和这个问题是一样的