Я следую примеру беговой дорожки из книги Джейсона Рудольфа в InfoQ , используя grails-1.2.1. Я подошел к той части, где я должен был перейти с hsqldb на mysql. Я думаю, что я удалил все ссылки на hsqldb в файле DataSource.groovy, но получаю исключение, и трассировка стека показывает, что он все еще использует hsqldb.
DataSource.groovy
dataSource {
boolean pooled = true
String driverClassName = "com.mysql.jdbc.Driver"
String url = "jdbc:mysql://localhost/dfpc2"
String dbCreate = "create"
String username = "dfpc2"
String password = "dfpc2"
dialect = org.hibernate.dialect.MySQL5InnoDBDialect
}
hibernate {
cache.use_second_level_cache=true
cache.use_query_cache=true
cache.provider_class='net.sf.ehcache.hibernate.EhCacheProvider'
}
// environment specific settings
environments {
development {
}
test {
}
production {
}
}
Когда я grails run-app
все запускается без ошибок. Я могу перейти на домашнюю страницу. Но когда я нажимаю на одну из ссылок, я получаю трассировку стека:
java.sql.SQLException: Table not found in statement [select this_.id as id0_0_, this_.version as version0_0_, this_.name as name0_0_, this_.variant as variant0_0_ from domainObject this_ limit ?]
at org.hsqldb.jdbc.Util.throwError(Unknown Source)
at org.hsqldb.jdbc.jdbcPreparedStatement.<init>(Unknown Source)
at org.hsqldb.jdbc.jdbcConnection.prepareStatement(Unknown Source)
at dfpc2.domainObjectController$_closure2.doCall(script1269434425504953491149.groovy:13)
at dfpc2.domainObjectController$_closure2.doCall(script1269434425504953491149.groovy)
at java.lang.Thread.run(Thread.java:619)
В моей базе данных mysql не создано ни одной таблицы. (Я не думаю, что Groovy еще связан с MySQL.)
Вещи, которые я проверял:
- mysql-connector-java-5.1.6.jar находится в каталоге lib.
- Я пробовал
grails clean
- Я пытался поместить информацию источника данных в среду разработки (я еще не закончил тестировать или тестировать), но, похоже, это не имело никакого значения. Стандарт показывает, что я использую среду разработки.
Я гуглил по решениям, но единственное решение, которое я нашел, - это когда люди не меняют тестовую или производственную среду.