我有一个像这样的实体:
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
}
部署时我收到此错误:
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]
有人能帮我理解我做错了什么吗? 谢谢。
答案 0 :(得分:3)
我认为与此hibernate错误https://hibernate.atlassian.net/browse/HHH-8368
有关您正在使用JPQL保留字NEW
作为枚举值。
尝试使用另一个名称new,hibernate无法处理这种情况。
您可以在下面查看JPQL保留字列表。 https://docs.oracle.com/html/E24396_01/ejb3_langref.html#ejb3_langref_from_identifiers