2016-06-07 17 views
0

Der Versuch, Daten von DB mit Feder Batch zu lesen und zu überwintern Leser bekommen org.hibernate.hql.internal.ast.QuerySyntaxException: Ergebnis nicht abgebildet wird [vom Ergebnis]Spring Batch Hibernate CursorItemReader

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

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

ich bin nicht in der Lage Daten von DB.I Notwendigkeit zu lesen Abrufen von Daten aus Oracle mithilfe von Hibernate, die den Daten aus der Anforderung entsprechen. Ich konfigurierte so, aber Fehler oben angezeigt

Kann mir bitte jemand dabei helfen?

Ich habe über den Code-Snippet aus der Konfigurationsdatei eingefügt.

Antwort

1

Wenn Ihre Hibernate-Konfigurationsdatei den Namen Hiber.hib.xml hat, wird das definitiv nicht funktionieren. Benennen Sie es in hibernate.cfg.xml um.

Darüber hinaus sehe ich Sie vermischen Annotation Based Entity Mapping und *.hbm.xml basierte Entity Mapping. Tun Sie das nicht und versuchen Sie eine Methode zu verwenden.

+0

Vielen Dank Shazin, das hat funktioniert und fügte auch hier Paketnamen hinzu ** ** – Ravi