2013-03-14 4 views
0

데이터베이스에 테이블이 3 개 있습니다.최대 절전 모드 주석을 사용하여 매핑하는 경우가 많습니까?

스키마는 여기에서 개발했습니다.

직원 한 명이 여러 회의에 참석할 수 있으며 여러 명의 직원이 한 회의를 가질 수 있습니다.

http://sqlfiddle.com/#!4/653a40

내 응용 프로그램에서 최대 절전 모드를 사용하고 있습니다.

이것은 내 pojos입니다.

@Entity 
@Table(name="emp") 
public class Employee 
{ 
@Id 
    @Column(name="user_id") 
    @GeneratedValue(strategy=GenerationType.AUTO) 
    private Long id; 

    @Column(name="Name") 
    private String name; 

    @Column(name="salary") 
    private String salary; 

    @ManyToMany(cascade = {CascadeType.ALL}) 
    @JoinTable(name="emp_meeting", 
      joinColumns={@JoinColumn(name="user_id")}, 
      inverseJoinColumns={@JoinColumn(name="meetingId")}) 
private Set<MEETING> meetings= new HashSet<MEETING>(); 


    // getter and setter 
} 



@Entity 
@Table(name="MEETING") 
public class MEETING{ 


    @Id 
    @Column(name="meetingId") 
    @GeneratedValue(strategy=GenerationType.AUTO) 
    private int mid; 

    @Column(name="agenda") 
    private String agenda; 

    @ManyToMany(mappedBy="meetings") 
    private Set<Employee> emps= new HashSet<Employee>(); 

    //gettter and setter 
} 

이 정보가 맞습니까? 세 번째 테이블에 삽입하는 방법을 모르기 때문에?

+0

어쨌든 3 번째 테이블은 무엇입니까? – SudoRahul

+0

sqlfiddle에 대한 내 db 스키마를 확인하십시오. 링크가 질문에 – Thinker

답변

0

연관 테이블에 주 테이블의 두 외래 키보다 더 자세한 정보가 없으므로 개체 EmployeeMEETING을 연결할 때이 테이블의 삽입이 최대 절전 모드로 관리됩니다. 그래서 나에게 당신의 매핑은 정확하다. 문제가 생기면 양방향으로 연결하는 것을 잊지 마라. (즉, 자바를 사용하면, 직원을 회의에 추가하는 경우이 직원을 회의에 추가해야하고, 그 반대의 경우

(다른 주제 : 클래스 이름은 Java 규칙을 준수해야하고 MEETING 대신 Meeting이어야합니다.

+0

인데 어떻게 응답 값의 값을 얻을 수 있습니다. 나는 내 pojo의 에이미에 그것을 연결하지 않았습니다. – Thinker

0

세 번째 테이블에 명시 적으로 삽입 할 필요가 없습니다. Set of meetings가 채워진 Employee의 모든 저장/지속 호출은 Cascade.ALL cascade level로 작업 할 때 매핑 테이블에 자동 저장됩니다.