단방향 @OneToOne 프라이 머리 키 연관 :
@Entity
@Table(name="person")
public class person{
@Id
@Column(name="person_id")
@GeneratedValue
private Integer personId;
private String name;
@OneToOne(cascade=CascadeType.ALL)
@PrimaryKeyJoinColumn
private address address;
//getters & setters
}
@Entity
@Table(name="address")
public class address{
@Id
@Column(name="address_id")
private Integer addressId;
private String street;
//getters & setters
}
단방향 @OneToMany 프라이 머리 키 연관 :
@Entity
@Table(name="person")
public class person{
@Id
@Column(name="person_id")
@GeneratedValue
private Integer personId;
private String name;
@OneToOne(cascade=CascadeType.ALL)
@PrimaryKeyJoinColumn
private address address;
@OneToMany(cascade=CascadeType.ALL)
@JoinColumn(name = "person_id")
private List<car> cars;
//getters & setters
}
업데이트
그것은 어떻게 기업이 할 수있는 당신에게 명확해야 단 하나의 열에 많은 ID를 유지 하시겠습니까?
항상 많은면이 한 쪽만 자식 개체를 보관할 수있는 목록이있는 foeign 키의 단일 개체를 갖습니다.
여기에는 두 가지 옵션이 있습니다. 1) 특정 테이블을 사용하여 One과 Many 엔터티 간의 관계를 저장하십시오.
@ManyToOne
private person person;
http://deepeshdarshan.wordpress.com/2012/11/29/hibernate-many-to-one-unidirectional-mapping-using-annotation/
이 : 이런 식으로 뭔가 : 우리는 또한 같은 쓰기 자동차 클래스 있도록
@OneToMany(cascade=CascadeType.ALL)
@JoinColumn(name = "person_id")
private List<car> cars;
http://docs.jboss.org/hibernate/orm/4.3/manual/en-US/html/ch07.html#collections-mapping
2) 또한 많은 자동차를 말할 수는 한 사람에 속한다 정보는 일대 다 및 다 대일 단방향 매핑 용입니다.
@Amogh OK; 하지만 '자동차'에 '사람'이없고 CAR 테이블에 사람이 FK를 갖고 싶다면 최대 절전 모드를 선택하십시오. 아마도 당신이 의미하는 바를 예를 쓸 수 있을까요? – Queequeg
내 첫 코멘트에 대해 유감스럽게 생각합니다. 'OneToMany'에서는'사람 '을 차 안에 두어야 만 한 사람 만 얻을 수 있습니다. 많은 돈이 있습니다. – Amogh
@Amogh 아니, 그렇지 않습니다. CAR 테이블에 조인 열이 있어야하지만 Car 엔터티는 소유자를 전혀 알 수 없습니다. 'JoinColumn' 주석을 살펴보십시오. 이를 구현하기 위해 Person 클래스에서 사용할 수 있습니다. – kostja