【问题标题】:JPA: Errors in named queryJPA:命名查询中的错误
【发布时间】:2014-07-02 14:35:01
【问题描述】:

我得到了异常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 语法。

【问题讨论】:

    标签: java hibernate jpa named-query


    【解决方案1】:

    Entity name@Entity 一起使用,并且您在 Select 查询中使用的实体的名称应该相同,如果您未将实体名称与 @Entity 一起使用,则应将类名与 Select 查询一起使用。正确检查。

    【讨论】:

    • 令人难以置信,它就像一个魅力。提前致谢!
    【解决方案2】:

    问题在于,如果您添加注释@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
    • 通过删除name 属性修改@Entity 注释

    【讨论】:

      【解决方案3】:

      您的查询中缺少SELECT

      query="SELECT e FROM ElaborazionePagamentiMaggioriOneri e  WHERE
      

      【讨论】:

      • 缺少的SELECT e 是有效的Hibernate 语法。
      【解决方案4】:

      除了缺少SELECT之外,“未映射”错误可能是因为您没有在persistence.xml中注册类。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-01-14
        • 2012-05-22
        • 2013-05-07
        • 2015-09-20
        相关资源
        最近更新 更多