当前位置: 首页 > 面试题库 >

带有Hibernate的org.hibernate.hql.ast.QuerySyntaxException

严言
2023-03-14
问题内容

我是初次使用Hibernate和Java。我收到以下异常。我在网上找到的有关此错误的信息似乎没有帮助。有任何想法吗?例外:

java.lang.IllegalArgumentException: org.hibernate.hql.ast.QuerySyntaxException:

ApplPerfStats is not mapped [select count(c) from ApplPerfStats c]
    at org.hibernate.ejb.AbstractEntityManagerImpl.throwPersistenceException(AbstractEntityManagerImpl.java:601)
    at org.hibernate.ejb.AbstractEntityManagerImpl.createQuery(AbstractEntityManagerImpl.java:96)
    at com.icesoft.icefaces.samples.datatable.jpa.CustomerDAO.findTotalNumberCustomers(CustomerDAO.java:89)
    at com.icesoft.icefaces.samples.datatable.ui.SessionBean.getDataPage(SessionBean.java:189)
    at com.icesoft.icefaces.samples.datatable.ui.SessionBean.access$0(SessionBean.java:185)
    at com.icesoft.icefaces.samples.datatable.ui.SessionBean$LocalDataModel.fetchPage(SessionBean.java:245)
    at com.icesoft.icefaces.samples.datatable.ui.PagedListDataModel.getPage(PagedListDataModel.java:121)
    at com.icesoft.icefaces.samples.datatable.ui.PagedListDataModel.getRowCount(PagedListDataModel.java:100)
    at com.icesoft.faces.component.datapaginator.DataPaginator.isModelResultSet(DataPaginator.java:1091)
    at com.icesoft.faces.component.datapaginator.DataPaginatorRenderer.encodeBegin(DataPaginatorRenderer.java:201)

被称为的地方:

@SuppressWarnings("unchecked")
public Long findTotalNumberCustomers() {
    EntityManagerHelper.log("finding number of Customer instances", Level.INFO, null);
    try {
        String queryString = "select count(c) from ApplPerfStats c";
        return (Long) getEntityManager().createQuery(queryString).getSingleResult();
    } catch (RuntimeException re) {
        EntityManagerHelper.log("find number of Appl_perf_stats failed",
                Level.SEVERE, re);
        throw re;
    }
}

映射到数据库表的类:

package com.icesoft.icefaces.samples.datatable.jpa;

import java.sql.Timestamp;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;

@Entity
@Table(name = "Appl_perf_stats", uniqueConstraints = {})
public class ApplPerfStats implements java.io.Serializable {
.....

谢谢,


问题答案:

尝试在文件中的class下添加元素。persistence-unit``persistence.xml

<?xml version="1.0" encoding="UTF-8"?>
<persistence ...>

    <persistence-unit name="unit">
        <class>com.icesoft.icefaces.samples.datatable.jpa.ApplPerfStats</class>
        ...
     </persistence-unit>
<persistence>

我在JPA /
EntityManager上所做的工作还不止这些,所以我不知道是否有添加整个程序包的方法。AFAIK在使用时hibernate.cfg.xml,必须直接指定每个持久类。



 类似资料:
  • 问题内容: 我正在使用Hibernate,EJB和Restfull Web服务。我在下面有这个例外,我不知道该怎么办。 问题答案: AbstractMethodError通常是由不兼容的二进制文件引起的;对于此特定错误,有一个打开的(未解决的)故障单,但带有一些注释 例如,原始问题报告提到了一个问题,该问题调用EntityManagerFactory.createEntityManager(jav

  • 问题内容: 有一种简单的方法可以将hibernate设置为对每个带有postgres的表使用不同的主键ID。我试图在数据源中使用postgres方言: 但这是行不通的。谢谢 问题答案: 简短的答案是没有,没有 简单的 方法可以做到这一点。但是,我找到了一种有效的解决方案。基本上,您需要实现自定义方言。这是一个实现(请在注释中注明实现的原始来源)。 上述实施应当存储为下你的Grails项目中。 接下

  • 问题内容: 有没有一种方法可以像我向它们添加(NOLOCK)提示一样运行这些查询? 问题答案: 如果您确实需要此功能,则可以执行以下操作: 这与nolock相同。 在执行此操作之前,请认真思考是否要进行脏读。人们大多数时候这样做是因为这是他们一直以来所做的事情,而不是因为这是正确的事情。特别是,这不适用于缓存。 实际上,该线程会涉及一些问题。在决定之前,请仔细阅读。

  • 我正在从GlassFish 4迁移到WildFly8应用程序服务器并收到以下错误: 我使用Hibernate空间和PostGIS。对于Glassfish服务器,我将postgis jar添加到 /lib/ext文件夹以修复该错误。 我按照本教程中的步骤:https://gist.github.com/bjornharrtell/3054462,但它对我不起作用,即我将这些模块添加到 /org/hi

  • 我对Hibernate Spring MVC有几个问题。这是我从控制器调用数据库实体的示例: 控制器 服务 数据库服务 带有命名查询的car服务 汽车储存库 汽车实体 @Table(name = "car ",catalog = "ATS ")公共类car实现java.io.Serializable { 车型(外键链接,一对多关系) 车队实体 收购实体 我正在使用maven和4.2.1.RELEA

  • 我正在尝试使用Hibernate开发JavaFX桌面应用程序。在我的数据模型中,我有两个实体(Player、Team)。每个玩家都属于一个团队。 玩家 id: int firstName: String lastName: Stringref_Team: int 团队 id: int名称:字符串 在我的应用程序中,目前每个实体有两个表,一切正常。但现在我想更进一步,在团队实体的TableView中