Version 2

    Introduction

     

    Previously, all hibernate modules were featuring a hibernate.properties file that was bound to H2 connection properties only.

    To run tests on a different database, the hibernate-matrix-testing was required.

     

    To allow running any test on any database, I created the following PR which I also integrated on master.

     

    Running tests

     

    In the hibernate-orm project root, there is a new configuration file called: databases.gradle which looks this:

     

    ext {
        db = 'h2'
        dbBundle = [
            h2 : [
                'db.dialect' : 'org.hibernate.dialect.H2Dialect',
                'jdbc.driver': 'org.h2.Driver',
                'jdbc.user'  : 'sa',
                'jdbc.pass'  : '',
                'jdbc.url'   : 'jdbc:h2:mem:db1;DB_CLOSE_DELAY=-1;LOCK_TIMEOUT=10000',
            ],
            hsqldb : [
                'db.dialect' : 'org.hibernate.dialect.HSQLDialect',
                'jdbc.driver': 'org.hsqldb.jdbc.JDBCDriver',
                'jdbc.user'  : 'sa',
                'jdbc.pass'  : '',
                'jdbc.url'   : 'jdbc:hsqldb:mem:test'
            ],
            pgsql : [
                'db.dialect' : 'org.hibernate.dialect.PostgreSQL94Dialect',
                'jdbc.driver': 'org.postgresql.Driver',
                'jdbc.user'  : 'hibernate_orm_test',
                'jdbc.pass'  : 'hibernate_orm_test',
                'jdbc.url'   : 'jdbc:postgresql:hibernate_orm_test'
            ]
        ]
    }
    

     

    This is where we can add every database specific configuration properties. Having a new file, allows us to git-ignore it so that each developer can add its own local environment configuration properties.

     

    By default, all tests are run against H2, and to switch to a different database (e.g. PostgreSQL) you can run the following Gradle command:

     

    gradle clean test -Pdb=pgsql
    

     

    Debugging

     

    To debug a certain test in your favorite IDE, you could first run the following command:

     

    gradle clean testClasses -Pdb=pgsql
    

     

    This command will generate the target/resources/test/hibernate.properties configuration file with the right configuration properties taken from the databases.gradle file.

     

    Then you can just