Java 使用Hibernate访问Oracle数据库链接表
我的用户希望输入随机sql以访问Oracle数据库中存在数据库链接的数据库。然而,这给了Hibernate一个例外。 下面是一个函数,它应该通过运行查询来检查查询是否有效。 欢迎提出任何建议 例外情况是: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'
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,而不必担心表的实际位置。这个问题很好,但我想和这个问题是一样的