| I'm,Use MyEclipse/headache
 //configure Person
 <set name="epzongs" inverse="true" table="Epzong">
 <key>
 <column name="pid" not-null="true" />
 </key>
 <!--  -->
 <one-to-many class="com.hibernate.db.Epzong" />
 </set>
 //Person by Set
 private Set epzongs = new HashSet(0);
 //Person
 private  Long createPerson(String fname,String lname,Integer age){
 Session s=HibernateSessionFactory.getSession();
 Transaction t=s.beginTransaction();
 Personperson=new Person();
 person.setAge(age);
 person.setFirstname(fname);
 person.setLastname(lname);
 s.save(person);
 t.commit();
 s.close();
 return person.getId();
 }
 
 //preparative action
 private void addPersonToEvent(Long personId, Long eventId) {
 
 Session s=HibernateSessionFactory.getSession();
 Transaction t=s.beginTransaction();
 
 Person aPerson = (Perone) s
 .createQuery("select p from Perone p left join fetch p.epzongs where p.id = :pid").setParameter("pid", personId).uniqueResult();
 Event anEvent = (Event) s.load(Event.class, eventId);
 t.commit();
 aPerson.getEpzongs().add(anEvent);
 Session session2 = HibernateSessionFactory.getSession();
 Transaction t1=s.beginTransaction();
 session2.beginTransaction();
 session2.update(aPerson);
 t1.commit();
 session2.close();
 //action
 Long eventId = mh.createEvent("My Event", new Date());
 Long personId = mh.createPerson("111", "Bar",21);
 mh.addPersonToEvent(personId, eventId);
 System.out.println("Added person " + personId + " to event " + eventId);
 
 error:
 Exception in thread "main" java.lang.ClassCastException: com.hibernate.db.Event$$EnhancerByCGLIB$$6abb194d
 at org.hibernate.type.EntityType.toLoggableString(EntityType.java:154)
 at org.hibernate.type.CollectionType.toLoggableString(CollectionType.java:146)
 at org.hibernate.pretty.Printer.toString(Printer.java:53)
 at org.hibernate.pretty.Printer.toString(Printer.java:90)
 at org.hibernate.event.def.AbstractFlushingEventListener.flushEverythingToExecutions(AbstractFlushingEventListener.java:97)
 at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:26)
 at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:985)
 at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:333)
 at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:106)
 at com.hibernate.bs.ManagerHibernate.addPersonToEvent(ManagerHibernate.java:84)
 at com.hibernate.bs.ManagerHibernate.main(ManagerHibernate.java:97)
 
 
 ..//epzong table mapping
 <hibernate-mapping>
 <class name="com.hibernate.db.Epzong" table="epzong" schema="dbo" catalog="hibernateDB">
 <composite-id name="id" class="com.hibernate.db.EpzongId">
 <key-property name="eid" type="java.lang.Long">
 <column name="eid" />
 </key-property>
 <key-property name="pid" type="java.lang.Long">
 <column name="pid" />
 </key-property>
 </composite-id>
 <many-to-one name="perone" class="com.hibernate.db.Perone" update="false" insert="false" fetch="select">
 <column name="pid" not-null="true" />
 </many-to-one>
 <many-to-one name="event" class="com.hibernate.db.Event" update="false" insert="false" fetch="select">
 <column name="eid" not-null="true" />
 </many-to-one>
 </class>
 </hibernate-mapping>
 
 
 [/u]
 
 
 |