Укажите URL-адрес jdbc: embedded-database

Я хочу указать URL-адрес тега jdbc:embedded-database. Это невозможно?

Например, если в моем контексте есть следующее:

<jdbc:embedded-database type="HSQL" id="dataSource">
    <jdbc:script execution="INIT" location="classpath:com/example/init.sql" />
</jdbc:embedded-database>

Он создаст базу данных в памяти, расположенную в jdbc:hsqldb:mem:dataSource

То, что я хочу сделать, это иметь другой идентификатор bean и имя базы данных...

Например:

<jdbc:embedded-database type="HSQL" id="dataSource" url="jdbc:hsqldb:mem:testdb">
    <jdbc:script execution="INIT" location="classpath:com/example/init.sql" />
</jdbc:embedded-database>

Ответ 1

Вместо использования jdbc: embedded-database вы можете сделать это с помощью обычной конфигурации источника данных и spring поддержки SQL script выполнения

<bean class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close" id="dataSource">
    <property name="driverClassName" value="org.hsqldb.jdbcDriver" />
    <property name="url" value="jdbc\:hsqldb\:mem\:YOUNAME" />
    <property name="username" value="sa" />
    <property name="password" value="" />
</bean>


<jdbc:initialize-database data-source="dataSource">
    <jdbc:script location="classpath:schema_h2.sql" />
 </jdbc:initialize-database>