如何像在 grails 中一样使我的 h2 数据库在 micronaut 中持久化?

Posted

技术标签:

【中文标题】如何像在 grails 中一样使我的 h2 数据库在 micronaut 中持久化?【英文标题】:How can I make my h2 database persistent in micronaut like I do in grails? 【发布时间】:2020-04-30 15:27:17 【问题描述】:

我对 grails 和 gorm 有点熟悉,我尝试在 micronaut 中迈出第一步。 我成功地使用 Person.save() 存储我的 Person 实体,并使用 Person.findAll() 在内存 H2 数据库中检索。但是我没有成功地将我的 Person 持久地存储在我的磁盘上。我的 micronaut-cli.yml 看起来像这样:

profile: service
defaultPackage: my.app
---
testFramework: spock
sourceLanguage: groovy
dataSource:
    pooled: true
    #url: jdbc:h2:mem:devDb
    url: jdbc:h2:file:/home/peter/devDb;MVCC=TRUE;LOCK_TIMEOUT=10000;DB_CLOSE_ON_EXIT=FALSE
    dbCreate: create
    driverClassName: org.h2.Driver
    username: sa
    password:
hibernate:
    cache:
        queries: false
        use_second_level_cache: false
        use_query_cache: false
        region.factory_class: org.hibernate.cache.ehcache.EhCacheRegionFactory

如您所见,我注释掉了内存中的 url 并将其替换为文件 url。使用该 url,我希望在我的主目录中有一个 devDb.h2.db 数据集,因为我从我的 grails 环境中知道它。

grails中的hibernate/gorm和grails外的hibernate/gorm有什么区别?

【问题讨论】:

【参考方案1】:

您已将数据源配置放入micronaut-cli.yml。相反,您希望将其放在 src/main/resources/application.yml 中(或任何您表达应用程序运行时配置的地方,micronaut-cli.yml 不是)。

希望对你有帮助。

【讨论】:

帮了大忙,现在数据库在它所属的地方持久化了,感谢您的即时答复。

以上是关于如何像在 grails 中一样使我的 h2 数据库在 micronaut 中持久化?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Grails 3 Gradle 项目中控制 H2 驱动程序版本?

Grails - 控制器和视图之间的通信

使用 Grails 作为框架时尝试查看 H2 数据库中的表

尝试在使用Grails作为框架时在H2数据库中查看表

无法查看 grails 项目中使用的 h2 db

具有弹簧安全性的 Grails 3.2.6。保存用户时未在内存中创建 h2 数据库