Spring提供了两个配置职务库的选项。
内存存储库-主要是开发。
持久存储库--主要是生产。
“如果您在内存中的作业存储库中出现错误,并且您真的不想在数据库中创建批处理表,那么使用持久化作业存储库和内存中的数据库(比如H2或Derby)”- Spring in Action
有人能解释一下上面的几句话吗,即在内存中的数据库比内存存储库具有持久存储库的优点。
由于内存中的数据库是不稳定的,那么通过拥有内存中的数据库(如H2 db )的持久作业存储库,难道不会使持久作业存储库的行为类似于内存中的作业存储库吗?
经过在互联网上的大量阅读,我发现使用像H2这样的内存中DB来对DAO层进行单元测试似乎是一个很好的实践。背后的想法是避免与生产数据库一起工作。 很好,所以我设置了一个Postgres数据库并激活了H2 PostgreSQL兼容模式,因为我的生产数据库是在Postgres上的。我现在面临的问题是:当我为了构建测试数据库而在H2上运行原始的SQL查询时,这个查询不被H2接受为有效: ALTER SEQUENCE MYERP.ecriture_comptable_id_seq OWNED BY MYERP.ecriture_comptable.id; 我猜使用Postgres兼容模式并不能保证所有
我已经在eclipse中使用H2嵌入式数据库和JPA创建了一个spring引导项目。在我的资源文件夹中,我使用import.sql来填充在entity package.The spring web应用程序中创建的表,数据库运行得很好,因为我可以检查它,但我想知道是否可以像我这样做时在Intelij DataGrip中检查这个数据库:
localhost:8080/h2-console
在我的春季项目中的application.properties中,我有如下内容:
spring.datasource.url=jdbc:h2:file:./database/suppliersDB;
spring