我得到异常org.hibernate.HibernateException: Errors in named queries: ElaborazionePagamentiMaggioriOneri.estrai
,但命名查询对我来说是正确的。我也得到了
org.hibernate.hql.ast.QuerySyntaxException: ElaborazionePagamentiMaggioriOneri is not mapped [FROM ElaborazionePagamentiMaggioriOneri e WHERE e.dataInizioLancio IS NULL AND e.dataFineLancio IS NULL AND e.distinta IS NULL]
我的实体如下:
@Entity(name="ELABORAZIONE_PAGAMENTI")
@Table(name="ELABORAZIONE_PAGAMENTI")
@NamedQuery(name="ElaborazionePagamentiMaggioriOneri.estrai",
query="FROM ElaborazionePagamentiMaggioriOneri e WHERE e.dataInizioLancio IS NULL AND e.dataFineLancio IS NULL AND e.distinta IS NULL")
public class ElaborazionePagamentiMaggioriOneri {
@Id
@GeneratedValue
@Column(name="ID_ELABORAZIONE")
private long idElaborazione;
@ManyToOne(fetch=FetchType.LAZY)
@JoinColumn(name="ID_INTERVALLO")
private Intervallo intervallo;
@Column(name="IMPORTO_MINIMO")
private BigDecimal importoMinimo;
@Column(name="IMPORTO_MASSIMO")
private BigDecimal importoMassimo;
@Column(name="LIMITE_DISPOSIZIONI")
private Long limiteDisposizioni;
@Column(name="DATA_INIZIO_LANCIO")
private Calendar dataInizioLancio;
@Column(name="DATA_FINE_LANCIO")
private Calendar dataFineLancio;
@OneToOne(fetch=FetchType.LAZY)
@JoinColumn(name="ID_DISTINTA")
private DistintaMaggioriOneri distinta;
错误的起源是什么?我仔细检查了JPQL语法。
答案 0 :(得分:10)
Entity name
一起使用的 @Entity
和您在Select查询中使用的实体的名称应该相同,如果您没有使用@Entity
的实体名称,则应使用类名使用选择查询。检查一下。
答案 1 :(得分:3)
问题在于,如果您放置注释@Entity(name="ELABORAZIONE_PAGAMENTI")
,则将实体名称设置为ELABORAZIONE_PAGAMENTI。
有两种解决方案:
FROM ELABORAZIONE_PAGAMENTI e WHERE e.dataInizioLancio IS NULL AND e.dataFineLancio IS NULL AND e.distinta IS NULL
@Entity
属性name
注释
答案 2 :(得分:2)
您的查询中缺少SELECT
。
query="SELECT e FROM ElaborazionePagamentiMaggioriOneri e WHERE
答案 3 :(得分:1)
除了缺少SELECT之外,“未映射”错误可能是因为您没有在persistence.xml中注册该类。