使用HQL向Oracle或SQL Server调用表函数
在我的java应用程序中,我正在编写TSQL查询,以便只查询SQL服务器。 后来,项目的需求发生了变化,我需要能够查询Oracle数据库。为此,我在HQL中重新编写了TSQL查询 在这种情况下,HQL应该同时在Sql Server数据库和Oracle数据库上运行 在迁移TSQL查询时,我遇到了一个问题。为了调用在PL/SQL中返回表的函数,需要将该函数包装到表函数中使用HQL向Oracle或SQL Server调用表函数,sql,sql-server,oracle,hibernate,Sql,Sql Server,Oracle,Hibernate,在我的java应用程序中,我正在编写TSQL查询,以便只查询SQL服务器。 后来,项目的需求发生了变化,我需要能够查询Oracle数据库。为此,我在HQL中重新编写了TSQL查询 在这种情况下,HQL应该同时在Sql Server数据库和Oracle数据库上运行 在迁移TSQL查询时,我遇到了一个问题。为了调用在PL/SQL中返回表的函数,需要将该函数包装到表函数中 SELECT * FROM TABLE(MyFunction(1)) 另一方面,在TSQL中,您可以只调用查询中的函数 SELE
SELECT * FROM TABLE(MyFunction(1))
另一方面,在TSQL中,您可以只调用查询中的函数
SELECT * FROM MyFunction(1)
如何处理HQL中的函数调用?或者,有没有办法在标准SQL中调用该函数,使其可以在两个数据库上运行?我过去曾处理过此类问题。我写了自己的
方言
扩展类。但现在我使用QueryDSL,这会使一切变得更简单。