我刚刚开始研究的项目上创建了一个新的grails域类。我知道数据源设置正确,因为我们已经有一堆域类正在更新到数据库中。
我得到的错误:
Caused by BatchUpdateException: ORA-00942: table or view does not exist
我尝试运行DBMUpdate,但也没有创建表。
创建域类时是否有一些我缺少的东西?我是否需要在更改日志中更改某些内容?任何建议都会有所帮助!
答案 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以获取有关该命令的更多详细信息。