2014-12-01 3 views
0

나는이 같은 엔터티를 가지고 :JPA : 명명 된 쿼리에 열거 형은

01/12/2014 16:59 [ERROR]: org.hibernate.impl.SessionFactoryImpl - 
       Error in named query: findFlussoAccantonamentiByStato 
       org.hibernate.hql.ast.QuerySyntaxException: 
       unexpected token: . near line 1, column 167 [select r from 
       it.infogroup.vertenze.entities.RichiestaEsportazioneIsidoro r 
       where r.stato = it.infogroup.vertenze.entities. 
       RichiestaEsportazioneIsidoro$StatoRichiesta.NEW 
       or r.stato = it.infogroup.vertenze.entities. 
       RichiestaEsportazioneIsidoro$StatoRichiesta.FAIL 
       and r.tipoFlusso = it.infogroup.vertenze.entities. 
       RichiestaEsportazioneIsidoro$TipoFlusso.ACCANTONAMENTI] 

누군가가 나에게 내가 잘못 이해하는 데 도움 수 :이 오류를 받고 있어요 배포에

package it.infogroup.vertenze.entities; 

import javax.persistence.*; 
import java.io.Serializable; 
import java.sql.Timestamp; 
import java.util.Date; 

@Entity 
@Table(name = "RICHIESTE_ESPORTAZIONE_ISIDORO") 
@NamedQueries({ 
     @NamedQuery(name = "findFlussoDatiGeneraliByStato", 
        query = "select r from RichiestaEsportazioneIsidoro r 
          where r.stato = it.infogroup.vertenze.entities. 
          RichiestaEsportazioneIsidoro$StatoRichiesta.NEW 
          or r.stato = it.infogroup.vertenze.entities. 
          RichiestaEsportazioneIsidoro$StatoRichiesta.FAIL 
          and r.tipoFlusso = it.infogroup.vertenze.entities. 
          RichiestaEsportazioneIsidoro$TipoFlusso.DATI_GENERALI"), 
     @NamedQuery(name = "findFlussoAccantonamentiByStato", 
        query = "select r from RichiestaEsportazioneIsidoro r 
          where r.stato = it.infogroup.vertenze.entities. 
          RichiestaEsportazioneIsidoro$StatoRichiesta.NEW 
          or r.stato = it.infogroup.vertenze.entities. 
          RichiestaEsportazioneIsidoro$StatoRichiesta.FAIL 
          and r.tipoFlusso = it.infogroup.vertenze.entities. 
          RichiestaEsportazioneIsidoro$TipoFlusso.ACCANTONAMENTI") 
}) 
public class RichiestaEsportazioneIsidoro implements Serializable { 

public final static String QUERY_FIND_BY_LOTTO_AND_STATO = 
                "findRichiestaByLottoAndStato"; 

    public enum StatoRichiesta { 
    NEW, 
    ELAB, 
    SENT, 
    FAIL 
    } 

    public enum TipoFlusso { 
     DATI_GENERALI, 
     ACCANTONAMENTI 
    } 

? 감사합니다. 내가 생각

+0

'RichiestaEsportazioneIsidoro'에서 열거 필드에 주석을 추가 한 방법을 보여줄 수 있습니까? –

+0

'@Enumerated (EnumType.STRING) '로 주석을 달았습니다. –

답변

3

은 당신은 당신의 열거 값 단어 NEW을 예약 된 JPQL을 사용하고이 최대 절전 모드 버그 https://hibernate.atlassian.net/browse/HHH-8368

관련이있다. 새 이름에 다른 이름을 사용해보십시오. 최대 절전 모드에서는 이러한 경우를 처리하지 못합니다.

아래에서 JPQL 예약어 목록을 확인할 수 있습니다. https://docs.oracle.com/html/E24396_01/ejb3_langref.html#ejb3_langref_from_identifiers

+0

"checker"링크는 JPQL 키워드가 아닌 SQL 키워드에 대한 것입니다. –

+0

감사합니다 @NeilStockton, 귀하의 발언을 반영하도록 편집합니다 :) –