DataSource.groovy dataSource:
dataSource { hibernate { cache.use_second_level_cache = false cache.use_query_cache = false } dbCreate = "create-drop" // one of 'create','create-drop','update' pooled = true driverClassname = "org.h2.Driver" username = "sa" password = "" url = "jdbc:h2:mem:testDb;MODE=Postgresql;IGnorECASE=TRUE;DATABASE_TO_UPPER=false" jndiname = null dialect = null }
Datasources.groovy dataSource:
datasource(name: 'reporting') { environments(['development','test']) domainClasses([SomeClass]) Readonly(false) driverClassname('org.h2.Driver') url('jdbc:h2:mem:testReportingDb;MODE=Postgresql;IGnorECASE=TRUE;DATABASE_TO_UPPER=false') username('sa') password('') dbCreate('create-drop') logsql(false) dialect(null) pooled(true) hibernate { cache { use_second_level_cache(false) use_query_cache(false) } }}
什么失败:
JasperPrint print = JasperFillManager.fillReport(compiledReport,params,dataSource.getConnection())
在调试时,我发现的唯一区别是,当使用DatasourcesUtils.getDataSource(null)注入或查找时,live dataSource是TransactionAwareDatasourceProxy,而DatasourcesUtils.getDataSource(‘reporting’)是BasicdataSource
我需要做什么才能使Jasper在活动的内存H2数据库上运行?
对于真正的postgres数据库,此故障无法再现.
可能你正在打开一个不同的数据库.使用数据库URL jdbc:h2:mem:testDb将打开一个 in-memory database within the same process and class loader.您是否尝试使用常规持久数据库,使用数据库URL jdbc:h2:〜/ testDb?
要使用打开在不同进程或类加载器中运行的内存数据库,需要使用server mode.这意味着,您需要运行数据库的start a server,并使用jdbc:h2:tcp连接到它: //本地主机/ MEM:TESTDB.
另见database URL overview.
总结以上是内存溢出为你收集整理的postgresql – 针对内存中的h2数据源运行Jasper报告?全部内容,希望文章能够帮你解决postgresql – 针对内存中的h2数据源运行Jasper报告?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)