Como evito 'Não foi possível determinar o dialeto do Hibernate para o nome do banco de dados [H2]!'?
Estou recebendo esse erro ao executargrails run-app
:
Erro executando bootstraps: Erro ao criar bean com o nome 'messageSource': Falha na inicialização do bean; a exceção aninhada é org.springframework.beans.factory.BeanCreationException: Erro ao criar o bean com o nome 'transactionManager': Não é possível resolver a referência ao bean 'sessionFactory' enquanto define a propriedade do bean 'sessionFactory'; a exceção aninhada é org.springframework.beans.factory.BeanCreationException: Erro ao criar o bean com o nome 'sessionFactory': Não é possível resolver a referência ao bean 'hibernateProperties' enquanto define a propriedade do feijão 'hibernateProperties'; a exceção aninhada é org.springframework.beans.factory.BeanCreationException: Erro ao criar o bean com o nome 'hibernateProperties': Não é possível resolver a referência ao bean 'dialectDetector' enquanto define a propriedade 'bean' da propriedade do bean com a tecla [hibernate.dialect]; a exceção aninhada é org.springframework.beans.factory.BeanCreationException: Erro ao criar bean com o nome 'dialectDetector': Falha na invocação do método init; a exceção aninhada é org.codehaus.groovy.grails.orm.hibernate.exceptions.CouldNotDetermineHibernateDialectException: Não foi possível determinar o dialeto do Hibernate para o nome do banco de dados [H2]!
O acordo DataSource.groovy:
dataSource {
pooled = true
driverClassName = "org.h2.Driver"
username = "sa"
password = ""
// Adding this causes a different error:
// dialect = org.hibernate.dialect.H2Dialect
}
hibernate {
cache.use_second_level_cache = true
cache.use_query_cache = true
cache.provider_class = 'net.sf.ehcache.hibernate.EhCacheProvider'
}
environments {
development {
dataSource {
dbCreate = "create-drop" // one of 'create', 'create-drop','update'
url = "jdbc:h2:mem:devDB"
}
}
test { // test-related stuff }
production { // prod-related stuff }
}
Quando forneço explicitamente o dialeto conforme indicado acima (org.hibernate.dialect.H2Dialect
), ocorre este erro:
Erro executando bootstraps: Erro ao criar bean com o nome 'messageSource': Falha na inicialização do bean; a exceção aninhada é org.springframework.beans.factory.BeanCreationException: Erro ao criar o bean com o nome 'transactionManager': Não é possível resolver a referência ao bean 'sessionFactory' enquanto define a propriedade do bean 'sessionFactory'; a exceção aninhada é org.springframework.beans.factory.BeanCreationException: Erro ao criar bean com o nome 'sessionFactory': Falha na invocação do método init; a exceção aninhada é java.lang.IncompatibleClassChangeError: classe encontrada org.hibernate.cfg.Mappings, mas a interface era esperada
Alguém sabe como lidar com isso?
(O relatório de erros existe comohttp: //jira.grails.org/browse/GRAILS-799)