Search code examples
springsqlitespring-data

SQLITE and foreign key support


Anyone had any success in getting sqlite and spring working with foreign key support enabled? By default foreign key support is disabled in sqlite. The documentation at http://www.sqlite.org/foreignkeys.html mentions that you have to enable it for each database connection separately. I am sure that the version of sqlite I have got supports foreign keys (downloaded it only last week).

to test: If I key in PRAGMA foreign_keys; I get back 0. Which means foreign keys is switched off but support for it exists.

My datasource is defined in spring as :

<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="${jdbc.driverclass}"/>
<property name="url" value="${jdbc.url}"/>
</bean>

How do I enable foreign keys through spring configuration?


Solution

  • Found the answer on one of the spring forums:

        <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
        <property name = "connectionInitSqls">
        <list><value>**PRAGMA foreign_keys = ON**</value></list>
        </property>
        ...
        </bean>