有没有一种优雅的方法可以在运行时配置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/