RESOLVED - BATCH-989: Add support for named queries on HibernateCursorItemReader

added setQueryName(..) as alternative to setQueryString(..)
This commit is contained in:
robokaso
2009-01-07 13:38:52 +00:00
parent e692072862
commit 0a92a7752b
5 changed files with 94 additions and 46 deletions

View File

@@ -32,16 +32,19 @@ public class HibernateCursorItemReaderIntegrationTests extends AbstractDataSourc
SessionFactory sessionFactory = (SessionFactory) factoryBean.getObject();
String hsqlQuery = "from Foo";
HibernateCursorItemReader<Foo> inputSource = new HibernateCursorItemReader<Foo>();
inputSource.setQueryString(hsqlQuery);
inputSource.setSessionFactory(sessionFactory);
inputSource.setUseStatelessSession(isUseStatelessSession());
inputSource.afterPropertiesSet();
inputSource.setSaveState(true);
HibernateCursorItemReader<Foo> hibernateReader = new HibernateCursorItemReader<Foo>();
setQuery(hibernateReader);
hibernateReader.setSessionFactory(sessionFactory);
hibernateReader.setUseStatelessSession(isUseStatelessSession());
hibernateReader.afterPropertiesSet();
hibernateReader.setSaveState(true);
return inputSource;
return hibernateReader;
}
protected void setQuery(HibernateCursorItemReader<?> reader) {
reader.setQueryString("from Foo");
}
protected boolean isUseStatelessSession() {

View File

@@ -0,0 +1,13 @@
package org.springframework.batch.item.database;
/**
* Tests {@link HibernateCursorItemReader} configured with named query.
*/
public class HibernateCursorItemReaderNamedQueryIntegrationTests extends HibernateCursorItemReaderIntegrationTests {
@Override
protected void setQuery(HibernateCursorItemReader<?> reader) {
reader.setQueryName("allFoos");
}
}

View File

@@ -0,0 +1,14 @@
package org.springframework.batch.item.database;
/**
* Tests {@link HibernateCursorItemReader} configured with stateful session and
* named query.
*/
public class HibernateCursorItemReaderStatefulNamedQueryIntegrationTests extends
HibernateCursorItemReaderNamedQueryIntegrationTests {
@Override
protected boolean isUseStatelessSession() {
return false;
}
}

View File

@@ -5,11 +5,14 @@
<hibernate-mapping>
<class name="org.springframework.batch.item.sample.Foo" table="T_FOOS">
<id name="id" column="ID">
<generator class="increment"/>
</id>
<property name="name" />
<property name="value" />
</class>
<id name="id" column="ID">
<generator class="increment" />
</id>
<property name="name" />
<property name="value" />
</class>
</hibernate-mapping>
<query name="allFoos">
from Foo
</query>
</hibernate-mapping>