2016-06-07 3 views
0

스프링을 배치하여 DB로부터 데이터를 읽고 org.hibernate.hql.internal.ast.QuerySyntaxException지고 리더 동면 시도 : 결과 [결과]와 매핑되지스프링 배치 절전 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 클래스

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

나는 DB.I 필요에서 데이터를 읽을 수 없습니다입니다 요청으로부터의 데이터에 대응하는 최대 절전 모드를 사용하여 오라클로부터 데이터를 페치한다. 위와 같이 구성했지만 표시된 오류가 발생했습니다.

누군가 나를 도와 줄 수 있습니까?

구성 파일의 코드 스 니펫 위에 붙여 넣었습니다.

답변

1

최대 절전 모드 구성 파일의 이름이 Hiber.hib.xml 인 경우 확실히 작동하지 않습니다. 이름을 hibernate.cfg.xml으로 바꿉니다.

또한 Annotation 기반 엔티티 매핑과 *.hbm.xml 기반 엔티티 매핑이 혼합되어 있습니다. 이렇게하지 않고 하나의 방법을 사용하십시오.

+0

Shazin 님, 고맙습니다. 패키지 이름을 여기에 추가했습니다. ** ** – Ravi