sebastiandaschner blog


JPA persistence.xml SQL script definitions

monday, december 04, 2017

You can define and link to SQL scripts in a JPA persistence context definition that will be executed at runtime. There are standardized properties to define scripts how to create the schema, bulk-load data and drop the schema, respectively:

<persistence version="2.1" xmlns="http://xmlns.jcp.org/xml/ns/persistence"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence
             http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd">
    <persistence-unit name="prod" transaction-type="JTA">
        <properties>

            <property name="javax.persistence.schema-generation.database.action"
                    value="drop-and-create"/>

            <property name="javax.persistence.schema-generation.create-script-source"
                    value="create-schema.sql" />

            <property name="javax.persistence.sql-load-script-source"
                    value="load-data.sql" />

            <property name="javax.persistence.schema-generation.drop-script-source"
                    value="drop-schema.sql" />

        </properties>
    </persistence-unit>
</persistence>

The SQL files are expected to reside in the classpath.

This post was reposted from my newsletter issue 004

 

Found the post useful? Subscribe to my newsletter for more free content, tips and tricks on IT & Java: