Spring’s embedded H2 datasource and DB_CLOSE_ON_EXIT

后端 未结 3 510
悲哀的现实
悲哀的现实 2020-12-24 05:37

For unit tests (call them integration tests if you want) I have configured an embedded database in my Spring config like so:



        
相关标签:
3条回答
  • 2020-12-24 06:15

    Specify parameter in JDBC url jdbc:h2:~/test;DB_CLOSE_ON_EXIT=FALSE

    Also for in-memory test database I suggest you to add DB_CLOSE_DELAY=-1, like this:

    jdbc:h2:mem:alm;MODE=Oracle;DB_CLOSE_DELAY=-1
    

    To add JDBC connection url to embedded-dababase change it to:

    <bean id="dataSource" class="org.springframework.jdbc.datasource.SimpleDriverDataSource">
        <property name="driverClass" value="org.h2.Driver"/>
        <property name="url" value="jdbc:h2:mem:test;MODE=Oracle;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE"/>
        <property name="username" value="sa"/>
        <property name="password" value=""/>
    </bean>
    
    <jdbc:initialize-database data-source="dataSource" ignore-failures="DROPS">
        <jdbc:script location="classpath:schema_h2.sql" />
     </jdbc:initialize-database>
    
    0 讨论(0)
  • 2020-12-24 06:25

    I had the same problem, but it was because I forgot to add the annotation @Entity on one of my entities. I add it and it work now ! I hope this helps someone.

    0 讨论(0)
  • 2020-12-24 06:28

    I had the same issue as Michael Piefel's one, and tried to implement the solution that Michail Nikolaev explained. but it did not work, somehow spring-batch, then, where are the metadata JOB_* tables are. So, as the version of spring-jdbc used by my application is 3.0.5 and increasing the spring-framework one enters in conflict with dwr (i use it in my app) it's a geo localisation based on spring, dwr and gmaps api. I downloaded the spring-jdbc 4.0.3 release and get from it the H2EmbeddedDatabaseConfigurer.class who has DB_CLOSE_ON_EXIT=FALSE by default and replace with it the one on the spring-jdbc 3.0.5 Relase and deploy-it in the war file and it works, the shutdown of the VM didn't provoque the closing of the in memory database.

    Hope this unusual solution helps if other people as me wouldn't be able to implement the other solution.

    0 讨论(0)
提交回复
热议问题