org.hibernate.hql.ast.QuerySyntaxException

时间:2010-08-23 12:33:33

标签: java hibernate orm hql

我在运行应用程序时遇到此异常请给我一个解决方案

在我的映射文件中,如下所示:

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
    "-//Hibernate/Hibernate Mapping DTD//EN"
    "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">

<hibernate-mapping>
    <class name="mobilserv.bo.SalesanalyzerBean" table="sales_analyzer">

        <id name="id" access="field" type="long" column="ID">
            <generator class="native" />
        </id>

        <property name="name" access="field" column="name" />
        <property name="itemname" access="field" column="itemname" />
        <property name="total_qty" access="field" column="Total_qty" />     
        <property name="amount" access="field" column="Total_amount" />

    </class>

</hibernate-mapping>

我的实体:

package mobilserv.bo;

import java.util.List;

import javax.persistence.CascadeType;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import org.hibernate.annotations.Entity;


@Entity
@Table(name = "sales_analyzer")
public class SalesanalyzerBean {
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private long id;
    private String name;
    private String itemname;
    protected int total_qty;
    private double amount;

    @ManyToOne(fetch=FetchType.LAZY,cascade = CascadeType.ALL)
    protected MenuItemBean item;

    @OneToMany(fetch=FetchType.LAZY,mappedBy = "order", cascade = CascadeType.ALL)
    protected List<OrderItemBean> orderItems;
    protected List<CategoryBean> categery;

    public List<CategoryBean> getCategery() {
        return categery;
    }
    public void setCategery(List<CategoryBean> categery) {
        this.categery = categery;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getItemname() {
        return itemname;
    }
    public void setItemname(String itemname) {
        this.itemname = itemname;
    }
    public int getTotal_qty() {
        return total_qty;
    }
    public void setTotal_qty(int total_qty) {
        this.total_qty = total_qty;
    }
    public double getAmount() {
        return amount;
    }
    public void setAmount(double amount) {
        this.amount = amount;
    }
    public MenuItemBean getItem() {
        return item;
    }
    public void setItem(MenuItemBean item) {
        this.item = item;
    }
    public List<OrderItemBean> getOrderItems() {
        return orderItems;
    }
    public void setOrderItems(List<OrderItemBean> orderItems) {
        this.orderItems = orderItems;
    }
    public long getId() {
        return id;
    }
    public void setId(long id) {
        this.id = id;
    }


}

1 个答案:

答案 0 :(得分:0)

你需要展示更多并澄清一些事情,你目前展示的内容非常令人困惑。

  1. 您正在使用hbm.xml映射文件和注释。他们基本上做同样的事情(提供元数据来映射实体),但它们是独一无二的。使用其中一个,而不是两个一起使用。
  2. hbm.xml不完整(它不会映射关联)。如果您正在使用它,它可能无法提供预期的结果。
  3. 显示如何创建AnnotationConfiguration以及SalesanalyzerBean
  4. hibernate.cfg.xml的宣传方式可能会非常有趣
  5. 您遇到的异常表示HQL查询在语法上是不正确的。 提供HQL查询。