新Grails域类不在数据库中创建表

时间:2013-07-09 15:50:06

标签: oracle hibernate grails gorm

我刚刚开始研究的项目上创建了一个新的grails域类。我知道数据源设置正确,因为我们已经有一堆域类正在更新到数据库中。

我得到的错误:

Caused by BatchUpdateException: ORA-00942: table or view does not exist

我尝试运行DBMUpdate,但也没有创建表。

创建域类时是否有一些我缺少的东西?我是否需要在更改日志中更改某些内容?任何建议都会有所帮助!

2 个答案:

答案 0 :(得分:4)

最简单的方法是将dbCreate = "update"添加到DataSource.groovy。更好的办法是为您的应用程序使用database-migrations插件。

关于手动创建表,默认情况下遵循的约定grails是下划线camelcase。例如,给定以下域:

class User {
  String firstName
  String lastName 
  static hasMany = [addresses: Address]
}

class Address {

  static belongsTo = [user: User]
}

您最终会得到以下表格:

user
---------
id
version
first_name
last_name
---------

address
---------
id
version
user_id
---------

答案 1 :(得分:1)

尝试跑步......

grails export-schema

这将使用Hibernate的SchemaExport工具生成DDL或导出整个数据库的模式。从该文件中,您可以获取缺失表格的行。

查看Grails Quick Reference以获取有关该命令的更多详细信息。