From: <one...@us...> - 2002-11-04 08:11:00
|
Update of /cvsroot/hibernate/Hibernate/cirrus/hibernate/test In directory usw-pr-cvs1:/tmp/cvs-serv5635/hibernate/test Modified Files: LessSimple.java Multi.hbm.xml MultiTableTest.java Log Message: support for collections/associations with MultiTableEntityPersister Index: LessSimple.java =================================================================== RCS file: /cvsroot/hibernate/Hibernate/cirrus/hibernate/test/LessSimple.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** LessSimple.java 10 Oct 2002 18:10:16 -0000 1.1 --- LessSimple.java 4 Nov 2002 08:10:53 -0000 1.2 *************** *** 2,8 **** --- 2,11 ---- package cirrus.hibernate.test; + import java.util.Set; + public class LessSimple extends Simple { private int intprop; private String foo; + private Set set; /** * Returns the intprop. *************** *** 35,38 **** --- 38,57 ---- public void setFoo(String foo) { this.foo = foo; + } + + /** + * Returns the set. + * @return Set + */ + public Set getSet() { + return set; + } + + /** + * Sets the set. + * @param set The set to set + */ + public void setSet(Set set) { + this.set = set; } Index: Multi.hbm.xml =================================================================== RCS file: /cvsroot/hibernate/Hibernate/cirrus/hibernate/test/Multi.hbm.xml,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** Multi.hbm.xml 24 Oct 2002 05:20:33 -0000 1.9 --- Multi.hbm.xml 4 Nov 2002 08:10:54 -0000 1.10 *************** *** 16,20 **** <property name="intprop"/> <one-to-one name="other" class="cirrus.hibernate.test.LessSimple"/> ! <property name="foo" column="other"/> </joined-subclass> --- 16,24 ---- <property name="intprop"/> <one-to-one name="other" class="cirrus.hibernate.test.LessSimple"/> ! <property name="foo"/> ! <set role="set" lazy="false"> ! <key column="parent"/> ! <one-to-many class="cirrus.hibernate.test.Simple"/> ! </set> </joined-subclass> *************** *** 22,26 **** <superclass-key column="sid"/> <property name="extraProp"/> ! <many-to-one name="other" class="cirrus.hibernate.test.Multi"/> <joined-subclass name="cirrus.hibernate.test.SubMulti" table="submulti"> --- 26,30 ---- <superclass-key column="sid"/> <property name="extraProp"/> ! <many-to-one name="other" class="cirrus.hibernate.test.Multi" /> <joined-subclass name="cirrus.hibernate.test.SubMulti" table="submulti"> Index: MultiTableTest.java =================================================================== RCS file: /cvsroot/hibernate/Hibernate/cirrus/hibernate/test/MultiTableTest.java,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** MultiTableTest.java 11 Oct 2002 04:56:57 -0000 1.7 --- MultiTableTest.java 4 Nov 2002 08:10:54 -0000 1.8 *************** *** 3,7 **** --- 3,9 ---- import java.util.Date; + import java.util.HashSet; import java.util.Iterator; + import java.util.Set; import cirrus.hibernate.*; *************** *** 16,19 **** --- 18,62 ---- } + public void testMultiTableCollections() throws Exception { + Session s = sessions.openSession(); + Transaction t = s.beginTransaction(); + Multi multi = new Multi(); + multi.setExtraProp("extra"); + //multi.setCount(666); + multi.setName("name"); + Simple simp = new Simple(); + simp.setDate( new Date() ); + simp.setName("simp"); + //simp.setCount(132); + s.save( multi, new Long(123) ); + s.save( simp, new Long(1234) ); + LessSimple ls = new LessSimple(); + ls.setName("Less Simple"); + Set set = new HashSet(); + ls.setSet(set); + set.add(multi); + set.add(simp); + s.save( ls, new Long(2) ); + t.commit(); + s.close(); + + s = sessions.openSession(); + t = s.beginTransaction(); + ls = (LessSimple) s.load( LessSimple.class, new Long(2) ); + assertTrue( ls.getOther()==ls ); + assertTrue( ls.getSet().size()==2 ); + Iterator iter = ls.getSet().iterator(); + int foundMulti = 0; + int foundSimple = 0; + while ( iter.hasNext() ) { + Object o = iter.next(); + if ( o instanceof Simple ) foundSimple++; + if ( o instanceof Multi ) foundMulti++; + } + assertTrue( foundSimple==2 && foundMulti==1 ); + s.delete("from s in class Simple"); + t.commit(); + s.close(); + } public void testMultiTable() throws Exception { |