📄 manytomanytest.java
字号:
//$Id: ManyToManyTest.java,v 1.4 2005/02/25 12:44:44 maxcsaucdk Exp $package org.hibernate.test.metadata.manytomany;import java.util.ArrayList;import java.util.Collection;import java.util.HashSet;import java.util.Hashtable;import java.util.Set;import org.hibernate.Session;import org.hibernate.Transaction;import org.hibernate.test.metadata.TestCase;/** * Many to many tests * * @author Emmanuel Bernard */public class ManyToManyTest extends TestCase { public ManyToManyTest(String x) { super(x); } public void testBasic() throws Exception { Session s; Transaction tx; s = openSession(); tx = s.beginTransaction(); Employer er = new Employer(); Employee ee = new Employee(); s.persist(ee); Collection erColl = new ArrayList(); Collection eeColl = new ArrayList(); erColl.add(ee); eeColl.add(er); er.setEmployees(erColl); ee.setEmployers(eeColl); //s.persist(ee); tx.commit(); s.close(); s = openSession(); tx = s.beginTransaction(); er = (Employer) s.load(Employer.class, er.getId() ); assertNotNull(er); assertNotNull( er.getEmployees() ); assertEquals( 1, er.getEmployees().size() ); Employee eeFromDb = (Employee) er.getEmployees().iterator().next(); assertEquals( ee.getId(), eeFromDb.getId() ); tx.commit(); s.close(); } public void testSelf() throws Exception { Session s; Transaction tx; s = openSession(); tx = s.beginTransaction(); Friend f = new Friend(); Friend sndF = new Friend(); f.setName("Starsky"); sndF.setName("Hutch"); Set frnds = new HashSet(); frnds.add(sndF); f.setFriends(frnds); //Starsky is a friend of Hutch but hutch is not s.persist(f); tx.commit(); s.close(); s = openSession(); tx = s.beginTransaction(); f = (Friend) s.load( Friend.class, f.getId() ); assertNotNull(f); assertNotNull( f.getFriends() ); assertEquals( 1, f.getFriends().size() ); Friend fromDb2ndFrnd = (Friend) f.getFriends().iterator().next(); assertEquals(fromDb2ndFrnd.getId(), sndF.getId() ); assertEquals( 0, fromDb2ndFrnd.getFriends().size() ); tx.commit(); s.close(); } public void testCompositePk() throws Exception { Session s; Transaction tx; ManPk m1pk = new ManPk(); m1pk.setElder(true); m1pk.setFirstName("Lucky"); m1pk.setLastName("Luke"); ManPk m2pk = new ManPk(); m2pk.setElder(false); m2pk.setFirstName("Joe"); m2pk.setLastName("Dalton"); Man m1 = new Man(); m1.setId(m1pk); m1.setCarName("Jolly Jumper"); Man m2 = new Man(); m2.setId(m2pk); WomanPk w1pk = new WomanPk(); w1pk.setFirstName("Ma"); w1pk.setLastName("Dalton"); WomanPk w2pk = new WomanPk(); w2pk.setFirstName("Carla"); w2pk.setLastName("Bruni"); Woman w1 = new Woman(); w1.setId(w1pk); Woman w2 = new Woman(); w2.setId(w2pk); Set<Woman> womens = new HashSet<Woman>(); womens.add(w1); m1.setWomens(womens); Set<Woman> womens2 = new HashSet<Woman>(); womens2.add(w1); womens2.add(w2); m2.setWomens(womens2); Set<Man> mens = new HashSet<Man>(); mens.add(m1); mens.add(m2); w1.setMens(mens); Set<Man> mens2 = new HashSet<Man>(); mens2.add(m2); w2.setMens(mens2); s = openSession(); tx = s.beginTransaction(); s.persist(m1); s.persist(m2); tx.commit(); s.close(); s = openSession(); tx = s.beginTransaction(); m1 = (Man) s.load(Man.class, m1pk); assertFalse( m1.getWomens().isEmpty() ); assertEquals( 1, m1.getWomens().size() ); w1 = (Woman) s.load(Woman.class, w1pk); assertFalse( w1.getMens().isEmpty() ); assertEquals( 2, w1.getMens().size() ); tx.commit(); s.close(); } /** * @see org.hibernate.test.metadata.TestCase#getMappings() */ protected Class[] getMappings() { return new Class[] { Employer.class, Employee.class, Friend.class, Man.class, Woman.class }; }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -