我花了最近几天才试图让Grails项目的准系统版本运行。在解决了处理Java版本不兼容性和错误IDE的各种问题之后,我可以看到主页的扩展!但最后一个问题令我烦恼。
我的grails 2.4.4项目正在使用H2,我在开发模式下运行应用程序。我收到一堆这样的错误消息:
错误| 2015-09-27 00:22:16,096 [localhost-startStop-1]错误 hbm2ddl.SchemaExport - 表" ORDER_DELIVERY"未找到; SQL 声明:alter table order_delivery drop constraint FK_syi9a9vft4d15lq78cx3e1m38如果存在[42102-176]
我想也许这些错误与此有关: Grails 2.4 and hibernate4 errors with run-app 我可以忽略它们。但是当我得到我的应用程序的dbconsole时,它没有显示任何表格。据说这似乎是这个问题中描述的问题:
Grails throws Table "xxx" not found
但我尝试了使用磁盘空间的已接受解决方案,但尚未解决问题。有任何想法吗?我使用Spring Security和Spring安全休息,虽然禁用它没有帮助。
来自我的 Datasource.groovy :
environments {
development {
dataSource {
dbCreate = "create-drop" // one of 'create', 'create-drop', 'update', 'validate', ''
url = "jdbc:h2:C:/temp/app_data;MVCC=TRUE"
}
}
}
我的引导课程。 SecUser和SecRole由s2快速入门脚本生成,我的用户域扩展了SecUser。 User.findAll()命令返回一个空列表:
class BootStrap {
def init = { servletContext ->
User user = new User(username: "test", password: "test123",
email: "test@guy.com", name: "Dakota Roberts", title: "MD", active: true)
user.save()
SecRole roleUser = new SecRole(authority: "ROLE_USER")
roleUser.save()
new SecUserSecRole(user: user, role: roleUser).save()
def users = User.findAll()
for(User chkUser : users) {
println chkUser.name
}
}
def destroy = {
}
}
用户域类示例。它扩展了SecUser,它将tablePerHierarchy设置为false:
@Resource(uri="/user")
class User extends SecUser {
String email
String name
String title
Boolean active
static belongsTo = [organization : Organization]
static constraints = {
email email: true, unique: true, blank: false
name blank: false
}
}