1

私のデータベース Sap Hana db は Spring Batch でサポートされていません。SpringBatch の SimpleJobRepository に独自の DAO を実装する方法に関するガイドを探しています。以前にこれを試したことがありますか?

データベースタイプのプロパティを含めなかったのは、Spring Batch Web サイトによると、それを含めないとデータベースタイプが自動検索されるためです。データベースがサポートされていないため、 JobRepositoryFactoryBean も使用しました。

私はこれのために私自身の実装を書くことに興奮していますが、多分私はそれを春のバッチソースに貢献することができます.

私の設定は次のとおりです。

   <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
4

2 に答える 2

1

独自の DataFieldMaxValueIncrementerFactory と独自の DatabaseType を実装して上記の問題を解決し、値を SimpleJobServerFactory に自動配線しました。

于 2014-07-07T14:28:06.910 に答える