有没有一种优雅的方法可以在运行时配置GrailsDomainClass以在运行时使用数据源或连接?理想情况下,这可以仅使用内存中的H2实例。

这是我的用例示例。我正在编写一个grails服务,该服务需要对域对象使用HQL语法来执行一些复杂的数据库计算。我希望它可以使用隔离的内存中H2实例与每个线程同时运行。

做到这一点的最佳方法是什么?我知道动态数据源路由可能是一个起点,但是如何在Grails中很好地实现这一点?我需要避免在配置文件中设置实例,因为需要即时创建内存中的H2实例。

我现在在这一点上,但不确定如何配置域对象以使用此连接。

def ds = new JdbcDataSource()
ds.setURL("jdbc:h2:mem:dw_1;MVCC=TRUE;LOCK_TIMEOUT=10000;INIT=CREATE SCHEMA IF NOT EXISTS dw_1")
ds.setUser("sa")
ds.setPassword("sa")
def conn = ds.getConnection()

亲切的问候,

最佳答案

从理论上讲,您可以尝试在config中设置其他数据源,并将域类配置为使用multiple datasources,并在运行时更改该其他内存中数据源的连接设置,或者不更改设置,而是在使用之前清除它,或按计划清除,或者不清除完全没有
记录:我自己尚未使用此功能。

关于grails - 在运行时动态设置Grails DataSource到内存中的H2实例,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18701195/

10-09 19:13