Java JPA:命名查询中的枚举
我有这样一个实体:Java JPA:命名查询中的枚举,java,jpa,enums,named-query,Java,Jpa,Enums,Named Query,我有这样一个实体: 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
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]
有人能帮我理解我做错了什么吗?
谢谢。我认为这与这个休眠错误有关 您正在使用JPQL保留字
NEW
作为枚举值。
尝试为new使用另一个名称,hibernate无法处理这种情况
下面您可以查看JPQL保留字列表。
我认为这与hibernate bug有关 您正在使用JPQL保留字
NEW
作为枚举值。
尝试为new使用另一个名称,hibernate无法处理这种情况
下面您可以查看JPQL保留字列表。
我认为这与hibernate bug有关 您正在使用JPQL保留字
NEW
作为枚举值。
尝试为new使用另一个名称,hibernate无法处理这种情况
下面您可以查看JPQL保留字列表。
我认为这与hibernate bug有关 您正在使用JPQL保留字
NEW
作为枚举值。
尝试为new使用另一个名称,hibernate无法处理这种情况
下面您可以查看JPQL保留字列表。
那应该行得通,你能说明你是如何在
richiestaesportazioneisdoro
中注释枚举字段的吗?我用@Enumerated(EnumType.STRING)
对它们进行了注释应该行得通,你能说明你是如何在richiestaesportazioneisdoro
中注释枚举字段的吗?我用@Enumerated(EnumType.STRING)对它们进行了注释
应该可以,你能展示你如何在richiestaesportazioneisdoro
中注释枚举字段吗?我用@Enumerated(EnumType.STRING)
对它们进行了注释应该可以,你能展示你如何在richiestaesportazioneisdoro
中注释枚举字段吗?我用@Enumerated(EnumType.STRING)对它们进行了注释
请注意,您的“checker”链接是针对SQL关键字的,而不是针对JPQL关键字的(这是此处的问题)。请注意,“checker”链接是针对SQL关键字的,而不是针对JPQL关键字的(这是此处的问题)。请注意,“checker”链接是针对SQL关键字的,而不是针对JPQL关键字的(这就是这里的问题所在)。只需指出,您的“checker”链接是针对SQL关键字的,而不是针对JPQL关键字的(这就是这里的问题所在)。