1

内蔵データベースを " update" に設定できません。アプリを終了すると、「 」がまだあるかのように、常にクリアされcreate-dropます。

SQL データベースや Tomcat サーバーの設定方法を知らない友人とプロジェクトを共有できるように、私は MySQL データベースを使用していましたが、組み込みデータベースに戻したことを知っておくと役立つ場合があります。

これが私のDataSource.groovyファイルです:

dataSource {
    pooled = true
    driverClassName = "org.h2.Driver"
    username = "sa"
    password = ""
}
hibernate {
    cache.use_second_level_cache = true
    cache.use_query_cache = true
    cache.region.factory_class = 'net.sf.ehcache.hibernate.EhCacheRegionFactory'
}
// environment specific settings
environments {
    development {
        dataSource {
            dbCreate = "update" // one of 'create', 'create-drop', 'update', 'validate', ''
            url = "jdbc:h2:mem:myAppDevDb;MVCC=TRUE"
        }
    }
    test {
        dataSource {
            dbCreate = "update"
            url = "jdbc:h2:mem:myAppTestDb;MVCC=TRUE"
        }
    }
    production {
        dataSource {
            dbCreate = "update"
            url = "jdbc:h2:myAppProdDb;MVCC=TRUE"
            pooled = true
            properties {
                maxActive = -1
                minEvictableIdleTimeMillis=1800000
                timeBetweenEvictionRunsMillis=1800000
                numTestsPerEvictionRun=3
                testOnBorrow=true
                testWhileIdle=true
                testOnReturn=true
                validationQuery="SELECT 1"
            }
        }
    }
}

どんな助けでも大歓迎です。前もって感謝します。

4

1 に答える 1

4

問題は、データソースがメモリ内データソースとして構成されているため、jvm が終了すると破棄されることです。代わりにファイルを使用するように H2 URL を構成すると、データベースを保存できるはずです。

development {
    dataSource {
        dbCreate = "update"
        url = "jdbc:h2:somefile:myAppDevDb;MVCC=TRUE"
    }
}
于 2012-04-07T15:24:55.687 に答える