2012-07-12 73 views
0

我是新來的Grails,所以原諒我的無知 - 如果其他信息有幫助,我會盡我所能將它發佈。Grails或休眠不會創建缺失的表

我創建了一個單域模型類ToolKitComponent作爲被定義爲:

class ToolKitComponent { 
    String componentName 
    String componentVersion 
    int componentDownloads 
    Date compnentLastUpdate 

    static constraints = { 

    } 
} 

我有一個控制器,我只想堅持一個例子來測試ORM,所以這裏的控制器的內容:

def index() { 
     ToolKitComponent i = new ToolKitComponent() 
     i.setComponentName("TestComponent") 
     i.setComponentVersion("v1.10") 
     i.setComponentDownloads(1) 
     i.setCompnentLastUpdate(new Date()) 
     i.save() 
} 

我已經安裝了MySQL數據庫插件,並更新了我的DataSource.groovy中來:

dataSource { 
    pooled = true 
    driverClassName = "com.mysql.jdbc.Driver" 
    dialect = "org.hibernate.dialect.MySQL5InnoDBDialect" 
    loggingSql = true 
} 

// other settings 

environments { 
    development { 
     dataSource { 
      String dbCreate = "create" 
      String url = "jdbc:mysql://localhost/testDataBase" 
      String username = "myUser" 
      String password = "myPass" 
     } 
    } 
} 

我創建了數據庫testDataBase並授予所有用戶名。

當我運行應用程序,我得到:

Hibernate: insert into tool_kit_component (version, compnent_last_update, component_downloads, component_name, component_version) values (?, ?, ?, ?, ?) 
| Error 2012-07-11 20:01:52,727 [http-bio-8080-exec-2] ERROR util.JDBCExceptionReporter - Table "TOOL_KIT_COMPONENT" not found; SQL statement: 
insert into tool_kit_component (version, compnent_last_update, component_downloads, component_name, component_version) values (?, ?, ?, ?, ?) [42102-164] 
| Error 2012-07-11 20:01:52,752 [http-bio-8080-exec-2] ERROR errors.GrailsExceptionResolver - JdbcSQLException occurred when processing request: [GET] /TestProject/ 
Table "TOOL_KIT_COMPONENT" not found; SQL statement: 
insert into tool_kit_component (version, compnent_last_update, component_downloads, component_name, component_version) values (?, ?, ?, ?, ?) [42102-164]. Stacktrace follows: 
Message: Table "TOOL_KIT_COMPONENT" not found; SQL statement: 
insert into tool_kit_component (version, compnent_last_update, component_downloads, component_name, component_version) values (?, ?, ?, ?, ?) [42102-164] 
    Line | Method 
->> 329 | getJdbcSQLException in org.h2.message.DbException 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
| 169 | get     in  '' 
| 146 | get . . . . . . . . in  '' 
| 4753 | readTableOrView  in org.h2.command.Parser 
| 4731 | readTableOrView . . in  '' 
| 954 | parseInsert   in  '' 
| 375 | parsePrepared . . . in  '' 
| 279 | parse    in  '' 
| 251 | parse . . . . . . . in  '' 
| 217 | prepareCommand  in  '' 
| 415 | prepareLocal . . . in org.h2.engine.Session 
| 364 | prepareCommand  in  '' 
| 1121 | prepareCommand . . in org.h2.jdbc.JdbcConnection 
|  71 | <init>    in org.h2.jdbc.JdbcPreparedStatement 
| 267 | prepareStatement . in org.h2.jdbc.JdbcConnection 
| 1051 | prepareStatement in  '' 
| 508 | prepareStatement . in org.apache.commons.dbcp.DelegatingConnection 
| 400 | prepareStatement in org.apache.commons.dbcp.PoolingDataSource$PoolGuardConnectionWrapper 
|  11 | index . . . . . . . in TestProject.HomeController 
| 1110 | runWorker   in java.util.concurrent.ThreadPoolExecutor 
| 603 | run . . . . . . . . in java.util.concurrent.ThreadPoolExecutor$Worker 
^ 722 | run     in java.lang.Thread 

我使用Grails 2.0.4。

任何幫助表示讚賞!

回答

2

在你的數據源定義拿走String

environments { 
    development { 
     dataSource { 
      dbCreate = "create" 
      url = "jdbc:mysql://localhost/testDataBase" 
      username = "myUser" 
      password = "myPass" 

     } 
    } 
}