Grails:指定hsqldb的类路径

时间:2011-11-05 19:50:22

标签: oracle grails gorm hsqldb

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

HSQLDB支持用Java编写的存储函数,因此我将通过编写存储的java函数来模仿TRUNC和TO_DATE。例如,TRUNC可以这样定义:

CREATE FUNCTION TRUNC(v DOUBLE) RETURNS INT
LANGUAGE JAVA DETERMINISTIC NO SQL
EXTERNAL NAME 'CLASSPATH:java.lang.Math.floor'

这很有效。因为标准java类Math在HSQLDB服务器的类路径上。对于to_date函数,没有标准的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类路径?

0 个答案:

没有答案