Привет, я новичок в hibernate. У меня есть один класс Customer, который имеет отношение один-ко-многим с классом Order, а класс Oder имеет отношение один-ко-многим с классом Item, а класс One-один - с Customer.and Класс элемента имеетотношение один ко многим с классом продукта.Мой файл hbm.xml выглядит следующим образом
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="com.xyz.hibernet.dto.Customer" table="CUSTOMER" abstract="true">
<id name="cid" type="java.lang.Integer" column="CUST_ID" >
<generator class="native"/>
</id>
<property name="cname" column="CUST_NAME"/>
<list name="orderList" cascade="all">
<key column="CUST_ID"/>
<index column="idx"/>
<one-to-many class="com.activenet.hibernet.dto.Order"/>
</list>
</class>
<class name="com.xyz.hibernet.dto.Order" table="ORDER">
<id name="oid" type="java.lang.Integer" column="O_ID" >
<generator class="native"/>
</id>
<property name="odate" column="ORDER_DATE"/>
<property name="amt" column="AMOUNT"/>
<set name="itemSet" inverse="true" cascade="all">
<key column="O_ID"/>
<one-to-many class="com.activenet.hibernet.dto.Item"/>
</set>
<many-to-one name="oCustomer" class="com.activenet.hibernet.dto.Customer" column="CUST_ID"/>
</class>
<class name="com.xyz.hibernet.dto.Item" table="ITEM">
<id name="iid" type="java.lang.Integer" column="ITEM_ID" >
<generator class="native"/>
</id>
<property name="quantity" column="ORDER_QTY"/>
<many-to-one name="product" class="com.activenet.hibernet.dto.Product" column="PRODUCT_ID"/>
</class>
<class name="com.xyz.hibernet.dto.Product" table="PRODUCT">
<id name="pid" type="java.lang.Integer" >
<column name="PROD_ID" />
<generator class="native"/>
</id>
<property name="pname" column="PROD_NAME"/>
<property name="price" column="PROD_PRICE"/>
<property name="descr" column="PROD_DESC"/>
</class>
<!-- <query name="findAllCustomers">
<![CDATA[from com.xyz.hibernet.dto.Customer c where c.name=:name]]>
</query>-->
</hibernate-mapping>
И
Класс клиента выглядит следующим образом
import java.util.List;
public class Customer {
private int cid;
private String cname;
private List orderList;
public Customer()
{
super();
}
public Customer(int cid,String cname, List orderList)
{
super();
this.cid=cid;
this.cname=cname;
this.orderList=orderList;
}
--setter and getter
}
Product.java
public class Product {
private int pid;
private String pname;
private double price;
private String descr;
public Product() {
super();
}
public Product(int pid,String pname,double price,String descr) {
super();
this.pid=pid;
this.pname=pname;
this.price=price;
this.descr=descr;
}
Setter and getter methods----here
}
Order.java
public class Order {
private int oid;
private Date odate;
private double amt;
private Set itemSet;
private Customer oCustomer;
public Order()
{
super();
}
public Order(int oid,Date odate,double amt, Set itemSet)
{
super();
this.oid=oid;
this.odate=odate;
this.itemSet=itemSet;
this.amt=amt;
}
-- setter and getter
}
Item.java
public class Item {
private int iid;
private Product product;
private int quantity;
public Item ()
{
super();
}
public Item (int iid,Product product,int quantity)
{
super();
this.iid=iid;
this.product=product;
this.quantity=quantity;
}
}
Мой тестКласс выглядит как нижеговорит У вас есть ошибка в вашем синтаксисе SQL;проверьте руководство, соответствующее вашей версии сервера MySQL, на предмет правильного синтаксиса для использования рядом со значениями 'ORDER (ORDER_DATE, AMOUNT, CUST_ID) (' 2012-03-07 11:58:55 ', 1200.0, null)' в строке 1
Я много пробовал, но не смог это исправить.Пожалуйста, помогите мне, где проблема