org.hibernate.hql.ast.QuerySyntaxException与Hibernate [英] org.hibernate.hql.ast.QuerySyntaxException with Hibernate

查看:74
本文介绍了org.hibernate.hql.ast.QuerySyntaxException与Hibernate的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我是使用Hibernate和Java的新手。我收到以下异常。我在网上找到的关于这个错误的东西似乎没有帮助。有任何想法吗?例外:

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

ApplPerfStats不是[从ApplPerfStats c选择计数(C)]
。在org.hibernate.ejb.AbstractEntityManagerImpl.throwPersistenceException(AbstractEntityManagerImpl.java:601)
映射在org.hibernate.ejb.AbstractEntityManagerImpl.createQuery (AbstractEntityManagerImpl.java:96)
在com.icesoft.icefaces.samples.datatable.jpa.CustomerDAO.findTotalNumberCustomers(CustomerDAO.java:89)
在com.icesoft.icefaces.samples.datatable.ui .SessionBean.getDataPage(SessionBean.java:189)
。在com.icesoft.icefaces.samples.datatable.ui.SessionBean.access $ 0(SessionBean.java:185)$ b $在com.icesoft.icefaces湾samples.datatable.ui.SessionBean $ LocalDataModel.fetchPage(SessionBean.java:245)
在com.icesoft.icefaces.samples.datatable.ui.PagedListDataModel.getPage(PagedListDataModel.java:121)
。在com.icesoft.icefaces.samples.data table.ui.PagedListDataModel.getRowCount(PagedListDataModel.java:100)
处com.icesoft.faces com.icesoft.faces.component.datapaginator.DataPaginator.isModelResultSet(DataPaginator.java:1091)
。 component.datapaginator.DataPaginatorRenderer.encodeBegin(DataPaginatorRenderer.java:201)

调用它的地方:

  @SuppressWarnings(unchecked)
public Long findTotalNumberCustomers(){
EntityManagerHelper.log(查找客户实例的数量,Level.INFO,null);
尝试{
String queryString =从ApplPerfStats c中选择count(c);
return(Long)getEntityManager()。createQuery(queryString).getSingleResult();
} catch(RuntimeException re){
EntityManagerHelper.log(查找Appl_perf_stats失败次数,
Level.SEVERE,re);
throw re;


映射到数据库表的类: p>

  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 = {})
公共类ApplPerfStats实现java.io.Serializable {
.... 。

谢谢,

<请尝试在 persistence-id>下添加一个元素,单元,在 persistence.xml 文件中。

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

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

我没有做过比JPA / EntityManager更多的工作,所以我不知道是否有一种方法可以添加整个软件包。 AFAIK,当使用 hibernate.cfg.xml 时,必须直接指定每个持久化类。


I'm new to using Hibernate with Java. I'm getting the following exception. The stuff that I found online regarding this error didn't seem to help. Any ideas? The Exception:

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)

The place where this is called:

@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;
    }
}

The class that maps to the database table:

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 {
.....

Thanks,

Tam

解决方案

Try adding a class element under persistence-unit, in your persistence.xml file.

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

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

I haven't done much more than that with JPA/EntityManager, so I don't know if there's a way to add an entire package. AFAIK, when using hibernate.cfg.xml, each persistent class has to be specified directly.

这篇关于org.hibernate.hql.ast.QuerySyntaxException与Hibernate的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆