java - Bootstrap 中的数据导致Grails错误

标签 java hibernate grails bootstrapping

我创建了一些数据,并希望使用bootstrap.groovy将其保存在数据库中

    def init = {
            servletContext ->
    //      def workTag = new Tag(name: "Work").save(FailonError:true)
   //       def homeTag = new Tag(name: "Home").save(FailonError:true)
             new Task(
                summary:"Do 2nd intro",
                details:"Create the second intro screencast for grails"
                ).save(FailOnError:true)
     //     task.addToTags(workTag);
    //      task.addToTags(homeTag);
    //      task.save(FailOnError:true)
        }

但有一个错误。下面是错误日志。问题是grails试图在创建不存在的表“task_tags”之前对其进行修改。
  Hibernate: alter table task_tags drop constraint FK_21qslii5dyb4qqcopln3eue77 if exists
  Error |
2015-08-05 12:31:10,212 [localhost-startStop-1] ERROR hbm2ddl.SchemaExport  -    HHH000389: Unsuccessful: alter table task_tags drop constraint   FK_21qslii5dyb4qqcopln3eue77 if exists
Error |
2015-08-05 12:31:10,220 [localhost-startStop-1] ERROR hbm2ddl.SchemaExport  -    Table "TASK_TAGS" not found; SQL statement:
alter table task_tags drop constraint FK_21qslii5dyb4qqcopln3eue77 if exists     [42102-176]
Hibernate: alter table task_tags drop constraint FK_p7u39l8kgfsq2qc34hyaslnsh   if exists
Error |
2015-08-05 12:31:10,221 [localhost-startStop-1] ERROR hbm2ddl.SchemaExport  -   HHH000389: Unsuccessful: alter table task_tags drop constraint   FK_p7u39l8kgfsq2qc34hyaslnsh if exists
Error |
2015-08-05 12:31:10,221 [localhost-startStop-1] ERROR hbm2ddl.SchemaExport  -    Table "TASK_TAGS" not found; SQL statement:
alter table task_tags drop constraint FK_p7u39l8kgfsq2qc34hyaslnsh if exists   [42102-176]
Hibernate: drop table tag if exists
Hibernate: drop table task if exists
Hibernate: drop table task_tags if exists
Hibernate: create table tag (id bigint generated by default as identity,   version bigint not null, name varchar(255) not null, primary key (id))
Hibernate: create table task (id bigint generated by default as identity, version bigint not null, date_create timestamp not null, deadline timestamp,   details varchar(1000) not null, summary varchar(255) not null, time_spent bigint  not null, primary key (id))
Hibernate: create table task_tags (task_id bigint not null, tag_id bigint not null, primary key (task_id, tag_id))
Hibernate: alter table tag add constraint UK_1wdpsed5kna2y38hnbgrnhi5b  unique (name)
Hibernate: alter table task add constraint UK_n1lv4uf5uqmeh2hyivoeb6c9p  unique (summary)
Hibernate: alter table task_tags add constraint FK_21qslii5dyb4qqcopln3eue77 foreign key (tag_id) references tag
Hibernate: alter table task_tags add constraint FK_p7u39l8kgfsq2qc34hyaslnsh foreign key (task_id) references task
Hibernate: select this_.id as id1_1_0_, this_.version as version2_1_0_,  this_.date_create as date_cre3_1_0_, this_.deadline as deadline4_1_0_, this_.details as details5_1_0_, this_.summary as summary6_1_0_, this_.time_spent as time_spe7_1_0_ from task this_ where this_.summary=?

数据源
dataSource {
pooled = true
jmxExport = true
driverClassName = "org.h2.Driver"
username = "sa"
password = ""
logSql = true
}
    hibernate {
    cache.use_second_level_cache = true

    cache.use_query_cache = false
    //    cache.region.factory_class =        'net.sf.ehcache.hibernate.EhCacheRegionFactory' // Hibernate 3
        cache.region.factory_class =   'org.hibernate.cache.ehcache.EhCacheRegionFactory' // Hibernate 4
       singleSession = true // configure OSIV singleSession mode
        flush.mode = 'manual' // OSIV session flush mode outside of transactional    context
}

// 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;DB_CLOSE_ON_EXIT=FALSE"
        }
    }
    test {
        dataSource {
            dbCreate = "update"
            url = "jdbc:h2:mem:testDb;MVCC=TRUE;LOCK_TIMEOUT=10000;DB_CLOSE_ON_EXIT=FALSE"
        }
    }
    production {
        dataSource {
            dbCreate = "update"
            url = "jdbc:h2:prodDb;MVCC=TRUE;LOCK_TIMEOUT=10000;DB_CLOSE_ON_EXIT=FALSE"
            properties {
               // See http://grails.org/doc/latest/guide/conf.html#dataSource for documentation
               jmxEnabled = true
               initialSize = 5
               maxActive = 50
               minIdle = 5
              maxIdle = 25
               maxWait = 10000
               maxAge = 10 * 60000
               timeBetweenEvictionRunsMillis = 5000
               minEvictableIdleTimeMillis = 60000
              validationQuery = "SELECT 1"
               validationQueryTimeout = 3
               validationInterval = 15000
               testOnBorrow = true
               testWhileIdle = true
               testOnReturn = false
               jdbcInterceptors = "ConnectionState"
               defaultTransactionIsolation =   java.sql.Connection.TRANSACTION_READ_COMMITTED
            }
        }
    }
}

对我有什么建议吗?
我正在使用Grails 2.4.4和JDK 1.7
谢谢

最佳答案

这些错误过去也使我担心。然后我知道这是正常的。观看,这是一个在Bootstrap.groovy中创建数据并可以正常运行的应用程序的日志:

| Error 2015-08-05 16:28:52,052 [localhost-startStop-1] ERROR hbm2ddl.SchemaExport  - HHH000389: Unsuccessful: alter table authority_group_authority drop constraint FK_hwkx744e59c6n9cdgmbypb08d if exists
| Error 2015-08-05 16:28:52,054 [localhost-startStop-1] ERROR hbm2ddl.SchemaExport  - Table "AUTHORITY_GROUP_AUTHORITY" not found; SQL statement:
alter table authority_group_authority drop constraint FK_hwkx744e59c6n9cdgmbypb08d if exists [42102-176]
| Error 2015-08-05 16:28:52,054 [localhost-startStop-1] ERROR hbm2ddl.SchemaExport  - HHH000389: Unsuccessful: alter table authority_group_authority drop constraint FK_futsabk28w1wwfkswsms95o8t if exists
| Error 2015-08-05 16:28:52,054 [localhost-startStop-1] ERROR hbm2ddl.SchemaExport  - Table "AUTHORITY_GROUP_AUTHORITY" not found; SQL statement:
alter table authority_group_authority drop constraint FK_futsabk28w1wwfkswsms95o8t if exists [42102-176]
| Error 2015-08-05 16:28:52,054 [localhost-startStop-1] ERROR hbm2ddl.SchemaExport  - HHH000389: Unsuccessful: alter table competition_summary drop constraint FK_f2b9903ykju6866nn0j7eeu0q if exists
| Error 2015-08-05 16:28:52,054 [localhost-startStop-1] ERROR hbm2ddl.SchemaExport  - Table "COMPETITION_SUMMARY" not found; SQL statement:
alter table competition_summary drop constraint FK_f2b9903ykju6866nn0j7eeu0q if exists [42102-176]
| Error 2015-08-05 16:28:52,055 [localhost-startStop-1] ERROR hbm2ddl.SchemaExport  - HHH000389: Unsuccessful: alter table message_snapshot drop constraint FK_l4w6ursivdd1xurvrfv9ydv45 if exists
| Error 2015-08-05 16:28:52,055 [localhost-startStop-1] ERROR hbm2ddl.SchemaExport  - Table "MESSAGE_SNAPSHOT" not found; SQL statement:
alter table message_snapshot drop constraint FK_l4w6ursivdd1xurvrfv9ydv45 if exists [42102-176]
| Error 2015-08-05 16:28:52,055 [localhost-startStop-1] ERROR hbm2ddl.SchemaExport  - HHH000389: Unsuccessful: alter table message_vote drop constraint FK_chpuqr6j3xdexi4ob53j6sl0q if exists
| Error 2015-08-05 16:28:52,055 [localhost-startStop-1] ERROR hbm2ddl.SchemaExport  - Table "MESSAGE_VOTE" not found; SQL statement:
alter table message_vote drop constraint FK_chpuqr6j3xdexi4ob53j6sl0q if exists [42102-176]
| Error 2015-08-05 16:28:52,055 [localhost-startStop-1] ERROR hbm2ddl.SchemaExport  - HHH000389: Unsuccessful: alter table message_vote drop constraint FK_ma5kawrbq0skxlsgg8bonfgmk if exists
| Error 2015-08-05 16:28:52,056 [localhost-startStop-1] ERROR hbm2ddl.SchemaExport  - Table "MESSAGE_VOTE" not found; SQL statement:
alter table message_vote drop constraint FK_ma5kawrbq0skxlsgg8bonfgmk if exists [42102-176]
| Error 2015-08-05 16:28:52,056 [localhost-startStop-1] ERROR hbm2ddl.SchemaExport  - HHH000389: Unsuccessful: alter table person_authority drop constraint FK_7d2mdh76otecbaoaq5y9p12ar if exists
| Error 2015-08-05 16:28:52,056 [localhost-startStop-1] ERROR hbm2ddl.SchemaExport  - Table "PERSON_AUTHORITY" not found; SQL statement:
alter table person_authority drop constraint FK_7d2mdh76otecbaoaq5y9p12ar if exists [42102-176]
| Error 2015-08-05 16:28:52,056 [localhost-startStop-1] ERROR hbm2ddl.SchemaExport  - HHH000389: Unsuccessful: alter table person_authority drop constraint FK_kdi2d7ujicv663k0h6mv85jx3 if exists
| Error 2015-08-05 16:28:52,056 [localhost-startStop-1] ERROR hbm2ddl.SchemaExport  - Table "PERSON_AUTHORITY" not found; SQL statement:
alter table person_authority drop constraint FK_kdi2d7ujicv663k0h6mv85jx3 if exists [42102-176]
| Error 2015-08-05 16:28:52,057 [localhost-startStop-1] ERROR hbm2ddl.SchemaExport  - HHH000389: Unsuccessful: alter table person_authority_group drop constraint FK_qoutbdssbuo7ajktd1yhmxg9k if exists
| Error 2015-08-05 16:28:52,057 [localhost-startStop-1] ERROR hbm2ddl.SchemaExport  - Table "PERSON_AUTHORITY_GROUP" not found; SQL statement:
alter table person_authority_group drop constraint FK_qoutbdssbuo7ajktd1yhmxg9k if exists [42102-176]
| Error 2015-08-05 16:28:52,057 [localhost-startStop-1] ERROR hbm2ddl.SchemaExport  - HHH000389: Unsuccessful: alter table person_authority_group drop constraint FK_m8qau47783r3u9ry6f70nledp if exists
| Error 2015-08-05 16:28:52,057 [localhost-startStop-1] ERROR hbm2ddl.SchemaExport  - Table "PERSON_AUTHORITY_GROUP" not found; SQL statement:
alter table person_authority_group drop constraint FK_m8qau47783r3u9ry6f70nledp if exists [42102-176]
| Error 2015-08-05 16:28:52,057 [localhost-startStop-1] ERROR hbm2ddl.SchemaExport  - HHH000389: Unsuccessful: alter table twitter_user drop constraint FK_ex3vyrgp0hu0apivwpanumu3b if exists
| Error 2015-08-05 16:28:52,058 [localhost-startStop-1] ERROR hbm2ddl.SchemaExport  - Table "TWITTER_USER" not found; SQL statement:
alter table twitter_user drop constraint FK_ex3vyrgp0hu0apivwpanumu3b if exists [42102-176]

您是否已确认任务未持久?只要您在开发环境中运行并且没有Spring Security,就可以使用database console检查数据库。

关于java - Bootstrap 中的数据导致Grails错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31822682/

相关文章:

java - Hibernate 获取表属性的列表<String>

grails - Grails 中的内联 if 语句

java - 如何在 PrimeFaces 中使用未缩小版本的 jQuery?

java - 如何将通用的rest xml 文件读入java 对象?

java - 如何强制 Hibernate 返回一个空值而不是 null?

java - 如何使用 Spring + Hibernate 将字符串读取为日期?

grails - 如何在 Grails Geb/Spock 测试用例中获取 sessionFactory?

grails - 抽象领域类和tablePerHierarchy

java - 将文本文件java中的数字添加到arraylist

hibernate - JPA 坚持变得越来越慢