org.hibernate.hql.ast.QuerySyntaxException - PullRequest
       5

org.hibernate.hql.ast.QuerySyntaxException

0 голосов
/ 23 августа 2010

я получаю это исключение, когда запускаю приложение, пожалуйста, дайте мне решение

в моем файле отображения примерно так:

<?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 голосов
/ 23 августа 2010

Вам нужно показать больше и уточнить несколько вещей, то, что вы сейчас показываете, довольно запутанно.

  1. Вы используете файл сопоставления hbm.xml и аннотации. Они в основном делают то же самое (предоставляют метаданные для сопоставления сущности), но они эксклюзивны. Используйте одно или другое, а не оба вместе.
  2. hbm.xml является неполным (он не отображает ассоциации). Если вы используете его, он может не дать ожидаемых результатов.
  3. На самом деле может быть интересно показать, как вы создаете AnnotationConfiguration и как ваш SalesanalyzerBean объявлен в вашем hibernate.cfg.xml
  4. Исключение, с которым вы сталкиваетесь, говорит, что запрос HQL синтаксически некорректен. Укажите HQL-запрос.
...