我有一个非常简单的域类
class Person {
String code
}
我也在使用默认的DataSource配置:
dataSource {
pooled = true
driverClassName = "org.h2.Driver"
username = "sa"
password = ""
}
hibernate {
cache.use_second_level_cache = true
cache.use_query_cache = false
cache.region.factory_class = 'net.sf.ehcache.hibernate.EhCacheRegionFactory'
}
// environment specific settings
environments {
development {
dataSource {
dbCreate = "create-drop" // one of 'create', 'create-drop', 'update', 'validate', ''
url = "jdbc:h2:mem:devDb;MVCC=TRUE;LOCK_TIMEOUT=10000"
dialect = "org.hibernate.dialect.H2Dialect"
}
} ...
但是当我打开/ dbconsole然后我看到DB是空的并且没有表。为什么?我做错了什么?
答案 0 :(得分:5)
当你打开dbconsole
时,你必须确保它正在读取正确的数据库。
在您的网址部分中,将dbconsole指向您的应用正在使用的网址。在你的情况下:
jdbc:h2:mem:devDb;MVCC=TRUE;LOCK_TIMEOUT=10000
答案 1 :(得分:0)
我的项目我正在使用mysql,我的数据源看起来像
dataSource {
pooled = true
driverClassName = "com.mysql.jdbc.Driver"
loggingSql = false
properties {
validationQuery="select 1"
testWhileIdle=true
timeBetweenEvictionRunsMillis=60000
}
}
hibernate {
cache.use_second_level_cache = false
cache.use_query_cache = false
cache.provider_class = 'net.sf.ehcache.hibernate.EhCacheProvider'
generate_statistics = false
}
// environment specific settings
environments {
development {
dataSource {
dbCreate = "update" // one of 'create', 'create-drop','update'
url="jdbc:mysql://localhost:3306/my_db"
username="XXX"
password="XXXXXX"
}
}
}
此配置工作正常
答案 2 :(得分:0)
如果您在开发模式下运行Grails并进行更改,我相信如果默认设置到位,它们将不会提交到H2数据库。您需要在生产模式下运行应用程序或更改某些配置属性以查看DBConsole中的更新信息 Similar StackOverflow Question