Кто-нибудь пробовал реализовать неподдерживаемую базу данных для использования в jobRepository для Spring Batch?

Моя база данных Sap Hana db не поддерживается для Spring Batch. Я ищу руководство по реализации моих собственных DAO для SimpleJobRepository для SpringBatch. Пробовал это раньше?

Я не включил свойство типа базы данных, потому что, согласно веб-сайту Spring Batch, не включающему его, он будет автоматически искать тип базы данных. Я также использовал JobRepositoryFactoryBean, так как db не поддерживается.

Я очень рад написать свою собственную реализацию для этого, возможно, я смогу внести ее в источник пакета Spring.

Моя настройка выглядит следующим образом:

   <bean id="jobRepository"
        class="org.springframework.batch.core.repository.support.JobRepositoryFactoryBean">
        <property name="dataSource" ref="dataSource" />
        <property name="transactionManager" ref="transactionManager" />
        <property name="isolationLevelForCreate" value="ISOLATION_DEFAULT" />
        <property name="validateTransactionState" value="false"/>
    </bean> 

В настоящее время я получаю следующую ошибку:

Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'jobRepository' defined in ServletContext resource [/WEB-INF/batch-context.xml]: Invocation of init method failed; nested exception is java.lang.IllegalArgumentException: DatabaseType not found for product name: [HDB]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1482)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:521)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:458)
    at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
    at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:323)
    ... 59 more
Caused by: java.lang.IllegalArgumentException: DatabaseType not found for product name: [HDB]
    at org.springframework.batch.support.DatabaseType.fromProductName(DatabaseType.java:79)
    at org.springframework.batch.support.DatabaseType.fromMetaData(DatabaseType.java:110)
    at org.springframework.batch.core.repository.support.JobRepositoryFactoryBean.afterPropertiesSet(JobRepositoryFactoryBean.java:182)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1541)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1479)
    ... 66 more

person user3804507    schedule 05.07.2014    source источник


Ответы (2)


Spring Batch 3 предлагает возможность вводить пользовательские типы баз данных. Проверьте DatabaseType и JobRepositoryFactotyBean.setDatabaseType () (вместо того, чтобы позволить SB автоматически определять тип базы данных из источника данных).
Конечно, вам нужно создать скрипты для создания таблиц метаданных (используйте это сообщение в блоге для примера и официальный документ)

person Luca Basso Ricci    schedule 05.07.2014
comment
не могли бы вы поделиться фрагментом кода, это может помочь мне лучше понять - person Suresh Kb; 09.12.2019

Мне удалось решить указанную выше проблему, реализовав свой собственный DataFieldMaxValueIncrementerFactory и свой собственный DatabaseType, после чего я автоматически подключил значения к SimpleJobServerFactory.

person user3804507    schedule 07.07.2014
comment
Не могли бы вы объяснить, как вам это удалось? - person itro; 01.04.2019