Я пытаюсь запустить отчеты jasper для действующей базы данных и базы данных отчетов, но любые отчеты, запускаемые для действующей базы данных, вызывают исключения о том, что не удалось найти нужные таблицы (хотя обнаружена схема PUBLIC по умолчанию). Это похоже на основной Соединение DataSource
не соблюдает настройки соединения H2, которые указывают IGNORECASE = true
, поскольку сгенерированные столбцы и таблицы пишутся с заглавной буквы, по моим запросам нет.
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())
Во время отладки я обнаружил единственное различие в том, что live dataSource при введении или поиске с помощью DatasourcesUtils.getDataSource (null)
является TransactionAwareDatasourceProxy
и DatasourcesUtils.getDataSource ('Reporting')
- это BasicDataSource
Что мне нужно сделать, чтобы Jasper работал с активной базой данных H2 в памяти?
Этот сбой невозможно воспроизвести с реальной базой данных postgres.