Hibernate Many to Many

Employee.hbm

 <class name="hibernatetest.Employee" table="EMPLOYEE">
        <id name="employeeId" column="EMPLOYEE_ID">
            <generator class="increment" />
        </id>

        <property name="firstname" />
     
        <set name="meetings" table="EMPLOYEE_MEETING"
             inverse="false" lazy="true" fetch="select" cascade="all">
            <key column="EMPLOYEE_ID" />
            <many-to-many column="MEETING_ID" class="hibernatetest.Meeting" />
        </set>
    </class>

Meeting.hbm

<class name="hibernatetest.Meeting" table="MEETING">
        <id name="meetingId" column="MEETING_ID">
            <generator class="increment" />
        </id>

        <property name="subject" column="SUBJECT" />
     

        <set name="employees" table="EMPLOYEE_MEETING"
             inverse="true" lazy="true" fetch="select">
            <key column="EMPLOYEE_ID" />
            <many-to-many column="MEETING_ID" class="hibernatetest.Meeting" />
        </set>
    </class>


Employee.java

private int employeeId;
    private String firstname;

    private Set<Meeting> meetings = new HashSet<Meeting>();

    public Employee() {
    }

    public Employee(String firstname) {
        this.firstname = firstname;

    }

    public int getEmployeeId() {
        return employeeId;
    }

    public void setEmployeeId(int employeeId) {
        this.employeeId = employeeId;
    }

    public String getFirstname() {
        return firstname;
    }

    public void setFirstname(String firstname) {
        this.firstname = firstname;

    }


Meeting.java


private int meetingId;
    private String subject;

    private Set<Employee> employees = new HashSet<Employee>();

    public Meeting(String subject) {
        this.subject = subject;

    }

    public int getMeetingId() {
        return meetingId;
    }

    public void setMeetingId(int meetingId) {
        this.meetingId = meetingId;
    }

    public String getSubject() {
        return subject;
    }

    public void setSubject(String subject) {
        this.subject = subject;
    }

    public Set<Employee> getEmployees() {
        return employees;
    }

    public void setEmployees(Set<Employee> employees) {
        this.employees = employees;

    }



Main.Java

SessionFactory sf = NewHibernateUtil.getSessionFactory();
        Session session = sf.openSession();
        session.beginTransaction();
  
         
        Meeting meeting1 = new Meeting("Quaterly Sales meeting");
        Meeting meeting2 = new Meeting("Weekly Status meeting");
         
        Employee employee1 = new Employee("Sergey");
        Employee employee2 = new Employee("Larry");

        employee1.getMeetings().add(meeting1);
        employee1.getMeetings().add(meeting2);
        employee2.getMeetings().add(meeting1);
         
        session.save(employee1);
        session.save(employee2);
         
        session.getTransaction().commit();

        session.close();

No comments:

Post a Comment