Ravi
Ravi

Reputation: 1

Spring Batch Hibernate CursorItemReader

Trying to read data from DB using spring batch and hibernate reader getting org.hibernate.hql.internal.ast.QuerySyntaxException: Result is not mapped [from Result]

<import resource="/context-model.xml"/>
<batch:job id="MainJob">
    <!-- File Load Step -->

    <batch:step id="stepDataReadFromDB">
        <batch:tasklet>
            <batch:chunk reader="DataReaderDB" processor ="" dummyProcessor" writer="dummyWriter" commit-interval="2"></batch:chunk>
        </batch:tasklet>
    </batch:step>
</batch:job>
<bean id="DataReaderDB" class="org.springframework.batch.item.database.HibernateCursorItemReader">
     <property name="sessionFactory" ref="sessionFactory" />         
<property name="queryString" value="from Result" />
<property name="useStatelessSession" value="false" /> 

</bean>
<bean id="transactionManager" class="org.springframework.batch.support.transaction.ResourcelessTransactionManager"/>
<bean id="jobLauncher" class="org.springframework.batch.core.launch.support.SimpleJobLauncher">
    <property name="jobRepository" ref="jobRepository"/>
</bean>
<bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
    <property name="dataSource" ref="DataSource" />
    <property name="mappingLocations" value="classpath:META-INF/spring/batch/hibernate/*.hbm.xml" />
    <property name="hibernateProperties">
      <props>
        <prop key="hibernate.dialect"> org.hibernate.dialect.OracleDialect</prop>
        <prop key="hibernate.show_sql">true</prop>
      <prop key="hibernate.format_sql">true</prop>
     </props>
    </property>
 </bean>


 <bean id="transactionManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager"/>
 <tx:annotation-driven transaction-manager="transactionManager"/>


<bean id="DataSource" class="org.apache.commons.dbcp.BasicDataSource">
    <property name="driverClassName" value="oracle.jdbc.OracleDriver"/>
    <property name="url" value="jdbc:oracle:thin:@******"/>
    <property name="username" value="UN"/>
    <property name="password" value="PW"/>
  </bean>

Hiber.hib.xml:

   <hibernate-configuration> 
      <session-factory>  
          <mapping class="org.core.reader.Result"/>  
      </session-factory>  
    </hibernate-configuration> 

Entity class

  @Entity
  @Table(name = "RESULT")
  public class Result {
  @Id
  @Column(name = "SID", nullable = false)
  int sID;
 @Column(name = "COLUMN1")
        String studentName;

I am unable to read data from DB.I need to fetch data from Oracle using hibernate corresponding to the data from the request. I configured like this but getting error above shown

Can someone please help me on this?

I have pasted above the code snippet from configuration file.

Upvotes: 0

Views: 959

Answers (1)

shazin
shazin

Reputation: 21883

If your hibernate configuration file is named Hiber.hib.xml then definitely this won't work. Rename it to hibernate.cfg.xml.

Furthermore I see you are intermixing Annotation based Entity mapping and *.hbm.xml based Entity mapping. Don't do this and try to use one method.

Upvotes: 1

Related Questions