⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 testmaps.java

📁 hibernate quickly 一书的各章节源代码
💻 JAVA
字号:

import junit.framework.TestCase;
import com.manning.hq.apdxA.*;
import org.hibernate.HibernateException;
import org.hibernate.Session;

import java.util.Map;
import java.util.Iterator;

/**
 *
 */
public class TestMaps extends TestCase {

    public void testOneToMany() throws HibernateException {
        Event event = new Event();
        Room greenRoom = new Room("A1");
        Room redRoom = new Room("B2");
        event.getRooms().put("green", greenRoom);
        event.getRooms().put("red", redRoom);

        HibernateFactory.buildSessionFactory();
        Session session1 = HibernateFactory.openSession();
        Session session2 = HibernateFactory.openSession();

        try {
            session1.save(event);
            session1.flush();

            Event loadedEvent = (Event) session2.load(Event.class, event.getId());
            assertEquals("Should have 2 rooms", 2, loadedEvent.getRooms().size());
            assertTrue("Should have a green room", loadedEvent.getRooms().containsKey("green"));
            assertTrue("Should have a red room", loadedEvent.getRooms().containsKey("red"));
        } finally {
            session1.delete(event);
            session1.delete(greenRoom);
            session1.delete(redRoom);
            session1.flush();
            HibernateFactory.close(session1);
            HibernateFactory.close(session2);
        }
    }

    public void testManyToMany() throws HibernateException {
        Event event = new Event();
        Room greenRoom = new Room("A1");
        Room redRoom = new Room("B2");
        event.getSharedRooms().put("green", greenRoom);
        event.getSharedRooms().put("red", redRoom);

        HibernateFactory.buildSessionFactory();
        Session session1 = HibernateFactory.openSession();
        Session session2 = HibernateFactory.openSession();

        try {
            session1.save(event);
            session1.flush();

            Event loadedEvent = (Event) session2.load(Event.class, event.getId());
            assertEquals("Should have 2 rooms", 2, loadedEvent.getSharedRooms().size());
            assertTrue("Should have a green room", loadedEvent.getSharedRooms().containsKey("green"));
            assertTrue("Should have a red room", loadedEvent.getSharedRooms().containsKey("red"));
        } finally {
            session1.delete(event);
            session1.delete(greenRoom);
            session1.delete(redRoom);
            session1.flush();
            HibernateFactory.close(session1);
            HibernateFactory.close(session2);
        }
    }

    public void testMapOfComponents() throws HibernateException {
        Location location = new Location();
        Address address1 = new Address("10 Shore Rd.");
        Address address2 = new Address("12 Shore Rd.");
        location.getAddresses().put("mailing", address1);
        location.getAddresses().put("secondary", address2);

        HibernateFactory.buildSessionFactory();
        Session session1 = HibernateFactory.openSession();
        Session session2 = HibernateFactory.openSession();

        try {
            session1.save(location);
            session1.flush();

            Location loadedLoc = (Location) session2.load(Location.class, location.getId());
            assertEquals("Should have 2 addresses", 2, loadedLoc.getAddresses().size());
            assertTrue("Should have a mailing", loadedLoc.getAddresses().containsKey("mailing"));
            assertTrue("Should have a secondary", loadedLoc.getAddresses().containsKey("secondary"));
        } finally {
            session1.delete(location);
            session1.flush();
            HibernateFactory.close(session1);
            HibernateFactory.close(session2);
        }
    }

    public void testMapWithEntityKeys() throws HibernateException {
        Event event = new Event();
        Room room1 = new Room();
        Room room2 = new Room();
        Speaker speaker1 = new Speaker();
        Speaker speaker2 = new Speaker();

        HibernateFactory.buildSessionFactory();
        Session session1 = HibernateFactory.openSession();
        Session session2 = HibernateFactory.openSession();

        try {
            session1.save(event);
            session1.save(room1);
            session1.save(room2);
            session1.save(speaker1);
            session1.save(speaker2);

            event.getSpeakersByRoom().put(room1, speaker1);
            event.getSpeakersByRoom().put(room2, speaker2);
            session1.flush();


            Event loadedEvent = (Event) session2.load(Event.class, event.getId());
            Map speakersByRoom = loadedEvent.getSpeakersByRoom();
            
            assertEquals("Should have 2 speakers", 2, speakersByRoom.size());
            Iterator it = speakersByRoom.keySet().iterator();
            assertEquals("Room 1", room1.getId(), ((Room) it.next()).getId());
            assertEquals("Room 2", room2.getId(), ((Room) it.next()).getId());

        } finally {
            session1.delete(event);
            session1.delete(room1);
            session1.delete(room2);
            session1.delete(speaker1);
            session1.delete(speaker2);
            session1.flush();
            HibernateFactory.close(session1);
            HibernateFactory.close(session2);
        }
    }

    public void testRoomEquals(){
        Room room = new Room(1);

        assertEquals(room, new Room(1));
        assertFalse(room.equals(new Room(2)));
    }

    public void testRoomHashCode(){
        Room room = new Room(1);

        assertEquals(room.hashCode(), new Room(1).hashCode());
        assertFalse(room.hashCode() == new Room(2).hashCode());
        assertFalse(room.hashCode() == new Room(3).hashCode());
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -