Hibernate Annotation 주석 과 관계 맵

4330 단어 자바Hibernate
1.Hibernate Annotation 관 계 는 다음 과 같은 몇 가지 유형 이 있 습 니 다.
1)1 대 1 외부 키 연결 맵(단 방향)
2)1 대 1 외부 키 연결 맵(양 방향)
3)1 대 1 메 인 키 연결 맵(중요 하지 않 음)을 보 여주 지 않 습 니 다.
실제 에 서 는 거의 사용 되 지 않 습 니 다.주석@Primary KeyJoinColumn 을 사용 하 십시오.
내 메 인 키 는 다른 표 의 메 인 키 를 참고 하여 내 메 인 키 로 사용 하지만 내 테스트 에 사용 한 다 는 뜻 이다.
주 해 는 1 대 1 메 인 키 관련 맵 입 니 다.표를 생 성 할 때 데이터베이스 에 관련 이 생 성 되 지 않 았 습 니 다.XML 을 사용 합 니 다.
맵 은 생 성 할 수 있 습 니 다.Annotation 주 해 는 1 대 1 메 인 키 와 연결 되 어 있 고 bug 가 있 습 니 다.연구 할 시간 이 없어 요.
실제 개발 에 서 는 1 대 1 로 거의 사용 되 지 않 기 때문이다.실제 개발 에서 나 는 기 회 를 써 본 적 이 없어 서 메 인 키 의 관련 이 더욱 적다.
4)다 대 일 관련 맵
5)한 쌍 의 다 중 관련 맵(단 방향)
6)한 쌍 의 다 중 관련 맵(양 방향)
7)다 중 관련 맵(단 방향)
8)다 중 관련 맵(양 방향)
2.각종 매 핑 용법 소개
1)1 대 1 외부 키 연결 맵(단 방향)
@OneToOne(cascade=CascadeType.ALL) 

@JoinColumn(name="userid",unique=true) 

//       ,  @OneToOne,         

//@JoinColum         userid(      ),     ,           + _id
 
 //        (unique),    ,         
 
  

2)1 대 1 외부 키 연결 맵(양 방향)
 
Class1      ,  
 
   Class2:
 
@OneToOne(mappedBy="class2",cascade=CascadeType.ALL)
 
//         ,  @OneToOne
 
//  :    mappedBy="class2",       ,
 
//Class2        (class1_id)
 
//mappedby="class2"               
 
//         ,           (owner)    
 
//          
 
//                 mappedBy      
 
//mappedBy           
 
//  :         ,   mappedby
 
    //cascade=CascadeType.ALL  

4)다 대 일 관련 맵
여러 쪽 에서 설정:

@ManyToOne(targetEntity=Organization.class) 

@JoinColumn(name="orgid") 

//     @ManyToOne 

//targetEntity        

//@JoinColumn(name="orgid")           ,   org_id

5)한 쌍 의 다 중 관련 맵(단 방향)

@OneToMany 

@JoinColumn(name="orgid") 

/**
 
 *      @OneToMany(  )
 
 *     @OneToMany  ,hibernate        
 
 *          ,
 
 *   @JoinColumn(name="orgid"),       ,   
 
 *         orgid,          
 
 */
 

6)한 쌍 의 다 중 관련 맵(양 방향)
한 끝:
@OneToMany(mappedBy="org")
 
@JoinColumn(name="orgid")
 
/**
 
 *      ,        mappedBy
 
 *          
 
 *            ,                 
 
 */

다단:
@ManyToOne
 
@JoinColumn(name="orgid")
 
/**
 
 *      
 
 *                    ,@JoinColumn(name="orgid")
 
 *       ,          ,          
 
 *          
 
 */

7)다 중 관련 맵(단 방향)
@ManyToMany
 
/**
 
 *      :  @ManyToMany(  )
 
 *      ,hibernate           ,
 
 *         
 
 *          :user_role   ,     user_id role_id
 
 *             ,    :
 
 */
 
@JoinTable(name="t_u_r",
 
joinColumns={@JoinColumn(name="u_id")},
 
inverseJoinColumns={@JoinColumn(name="r_id")}
 
)

8)다 중 관련 맵(양 방향)  사용자 측
@ManyToMany
 
/**
 
 *      :  @ManyToMany(  )
 
 *      ,hibernate           ,
 
 *         
 
 *          :user_role   ,     user_id role_id
 
 *             ,    :
 
 */
 
@JoinTable(name="t_u_r",
 
joinColumns={@JoinColumn(name="u_id")},
 
inverseJoinColumns={@JoinColumn(name="r_id")}
 
)
 
/**
 
 * @JoinTable(name="t_u_r",
 
 *         
 
 * joinColumns={@JoinColumn(name="u_id")},
 
 *          
 
 * inverseJoinColumns={@JoinColumn(name="r_id")}
 
 *          
 
 */

역할 단
@ManyToMany(mappedBy="role")
 
/**
 
 *    ,       

 */

좋은 웹페이지 즐겨찾기