Oracle Grails:为hsqldb指定类路径

Oracle Grails:为hsqldb指定类路径,oracle,grails,gorm,hsqldb,Oracle,Grails,Gorm,Hsqldb,在我们的项目中,我们使用Grails作为Web框架,使用Oracle db进行部署,使用HSQLDB进行开发和测试。有些查询使用Oracle特定的函数,如TRUNC或TO_DATE,不幸的是,HSQLDB不支持它们。因此,这意味着如果没有一些前期工作,我们无法创建集成测试 HSQLDB支持用Java编写的存储函数,因此我将通过编写存储的Java函数来模拟TRUNC和迄今为止的情况。例如,TRUNC可以这样定义: CREATE FUNCTION TRUNC(v DOUBLE) RETURNS IN

在我们的项目中,我们使用Grails作为Web框架,使用Oracle db进行部署,使用HSQLDB进行开发和测试。有些查询使用Oracle特定的函数,如TRUNC或TO_DATE,不幸的是,HSQLDB不支持它们。因此,这意味着如果没有一些前期工作,我们无法创建集成测试

HSQLDB支持用Java编写的存储函数,因此我将通过编写存储的Java函数来模拟TRUNC和迄今为止的情况。例如,TRUNC可以这样定义:

CREATE FUNCTION TRUNC(v DOUBLE) RETURNS INT
LANGUAGE JAVA DETERMINISTIC NO SQL
EXTERNAL NAME 'CLASSPATH:java.lang.Math.floor'
这是有效的。因为标准java类数学在HSQLDB服务器的类路径上。因为,到目前为止,还没有标准的java函数,所以我需要编写自己的函数。没问题,假设它被称为-to_date,位于com.stackoverflow.HSQLDBOracleSupport类中。我什么时候应该运行这样的查询

CREATE FUNCTION TO_DATE(d VARCHAR, format VARCHAR) RETURNS DATE
LANGUAGE JAVA DETERMINISTIC NO SQL
EXTERNAL NAME 'CLASSPATH:com.stackoverflow.HSQLDBOracleSupport.to_date'

问题是,我不知道应该将HSQLDBOracleSupport.class放在哪里。文档说它应该“在hsqldb服务器的类路径上”。但是使用哪一个类路径呢?如何在Grails中配置DataSource以指定hsqldb类路径?

最新的hsqldb 2.2.5支持TRUNC和to_DATE函数。