I have a bi-directional association between Item class and Bid class. (based upon An Item can contain many Bids)
<!--Mappings are as follows -->
<class name="com.hibernateproject.domain.Item" table="ITEM"> <id name="iid" type="int" unsaved-value="null"> <generator class="increment"/> </id> <property name="itemName" type="string"/> <list name="bids" inverse="true" cascade="all" table="BID"> <key column="item_bid"/> <index column="index_column"/> <one-to-many class="com.hibernateproject.domain.Bid" /> </list> </class>
<class name="com.hibernateproject.domain.Bid" table="BID"> <id name="bid" type="int" unsaved-value="null"> <generator class="increment"/> </id> <property name="bidValue" type="long" /> <many-to-one name="item" column="item_bid" class="com.hibernateproject.domain.Item" not-null="true"/> </class>
<!--Tables are as follows:-->
create table item(iid number, itemName varchar(20)); create table bid(bid number, bidValue long, item_bid number, index_column number);
<!--Main Class for Saving Item cascading Bid --> session.beginTransaction();
Item item = new Item(); item.setItemName("Item2"); item.setBids(new ArrayList()); Bid bid = new Bid(2000); bid.setItem(item); item.getBids().add(bid); session.save(item);
session.getTransaction().commit();
My mapping files are in the classpath. It is not cascading Bid class. Instead, it is executing SQL as follows: Hibernate: select max(iid) from ITEM Hibernate: insert into ITEM (itemName, iid) values (?, ?) Hibernate: update BID set bidValue=?, item_bid=? where bid=?
Please suggest.
|