Spring JDBC против хранимой процедуры Derby - PullRequest
1 голос
/ 30 сентября 2010

Документы Derby syscs_util.syscs_backup_database.

Я создал следующий тривиальный класс:

public class DerbyMemoryDatabaseDumpDao extends JdbcDaoSupport {
    private SimpleJdbcCall caller;

    @PostConstruct
    public void initialize() {
        caller = new SimpleJdbcCall(getDataSource()).withCatalogName("SYSCS_UTIL")
            .withProcedureName("SYSCS_BACKUP_DATABASE");
    }

    public void dumpDatabase(String whereTo) {
        SqlParameterSource in = new MapSqlParameterSource().addValue("BACKUPDIR", whereTo);
        caller.execute(in);

    }
}

И был вознагражден следующим указанием, что Spring JDBC 3.0.4 не в состоянии понятьситуация.Я не вижу, как просто использовать позиционный?для этой цели или даже просто жестко закодировать параметр в вызове (хотя я едва поцарапал эту поверхность).

2258 [main] DEBUG org.springframework.jdbc.core.metadata.CallMetaDataProviderFactory  - Using org.springframework.jdbc.core.metadata.DerbyCallMetaDataProvider
2258 [main] DEBUG org.springframework.jdbc.core.metadata.CallMetaDataProvider  - Retrieving metadata for null/SA/SYSCS_BACKUP_DATABASE
2862 [main] DEBUG org.springframework.jdbc.datasource.DataSourceUtils  - Returning JDBC Connection to DataSource
2863 [main] DEBUG org.springframework.jdbc.core.simple.SimpleJdbcCall  - Compiled stored procedure. Call string is [{call SYSCS_UTIL.SYSCS_BACKUP_DATABASE()}]
2863 [main] DEBUG org.springframework.jdbc.core.simple.SimpleJdbcCall  - SqlCall for procedure [SYSCS_BACKUP_DATABASE] compiled
2864 [main] DEBUG org.springframework.jdbc.core.metadata.CallMetaDataContext  - Matching [BACKUPDIR] with []
2864 [main] DEBUG org.springframework.jdbc.core.metadata.CallMetaDataContext  - Found match for []
2865 [main] DEBUG org.springframework.jdbc.core.simple.SimpleJdbcCall  - The following parameters are used for call {call SYSCS_UTIL.SYSCS_BACKUP_DATABASE()} with: {}
2866 [main] DEBUG org.springframework.jdbc.core.JdbcTemplate  - Calling stored procedure [{call SYSCS_UTIL.SYSCS_BACKUP_DATABASE()}]
2866 [main] DEBUG org.springframework.jdbc.datasource.DataSourceUtils  - Fetching JDBC Connection from DataSource
2866 [main] DEBUG org.springframework.jdbc.datasource.SimpleDriverDataSource  - Creating new JDBC Driver Connection to [jdbc:derby:memory:testdb;create=true]

1 Ответ

0 голосов
/ 30 сентября 2010

Несмотря на сообщение об ошибке, в котором предлагалось добавить .withCatalog, вместо этого было решение .withSchema.

...